Skip to content

Latest commit

 

History

History
115 lines (92 loc) · 3.56 KB

File metadata and controls

115 lines (92 loc) · 3.56 KB

文本重复字符压缩功能

功能简介

VoiceLinkVR Server 新增了文本重复字符和词组压缩功能,可以将语音识别结果中的连续重复字符和词组压缩成"字符数量"或"词组数量"的格式,减少文本冗余并提高可读性。

压缩规则

  • 支持单字符重复和词组重复压缩
  • 只压缩连续重复5次及以上的字符/词组
  • 压缩格式为:字符数量(如:啊5)或词组数量(如:测试5)
  • 区分大小写
  • 支持所有Unicode字符
  • 支持中英文混合文本

支持的压缩类型

  1. 单字符重复:如"啊啊啊啊啊" → "啊*5"
  2. 英文词组重复:如"Test test test test test" → "Test*5"
  3. 中文词组重复:如"测试测试测试测试测试" → "测试*5"
  4. 混合重复:如"哈 哈 哈 哈 哈 测试测试测试测试测试" → "哈5 测试5"

配置选项

在配置文件(config.py)中添加以下配置项:

ENABLE_TEXT_COMPRESSION: bool = True      # 是否启用文本重复字符压缩
TEXT_COMPRESSION_MIN_REPEAT: int = 5     # 文本压缩最小重复次数(默认5次)

也可以通过环境变量设置:

export ENABLE_TEXT_COMPRESSION=true
export TEXT_COMPRESSION_MIN_REPEAT=5

压缩效果示例

单字符重复

输入: "你好啊啊啊啊啊"
输出: "你好啊*5"

输入: "哈哈哈哈哈哈哈哈"
输出: "哈*8"

英文词组重复(空格分隔)

输入: "Test test test test test"
输出: "Test*5"

输入: "OK OK OK OK OK"
输出: "OK*5"

中文词组重复(连续字符)

输入: "测试测试测试测试测试"
输出: "测试*5"

输入: "语音识别语音识别语音识别语音识别语音识别"
输出: "语音识别*5"

复杂示例

输入: "Test test test test test test test test test test test."
输出: "Test*11."
压缩率: 6.9x (55字符 → 8字符)

输入: "测试测试测试测试测试测试测试测试测试测试测试。"
输出: "测试*11。"
压缩率: 3.8x (23字符 → 6字符)

输入: "语音识别语音识别语音识别语音识别语音识别结果"
输出: "语音识别*5结果"
压缩率: 3.3x (30字符 → 9字符)

API集成

该功能已集成到以下API端点:

  1. /api/whisper/transcriptions - Whisper语音识别
  2. /api/whisper/translations - Whisper语音翻译
  3. /api/func/translateToEnglish - 翻译到英文
  4. /api/func/translateToOtherLanguage - 翻译到其他语言
  5. /api/func/multitranslateToOtherLanguage - 多语言翻译

日志记录

当文本被压缩时,系统会记录日志:

[MULTITRANSLATE] 压缩重复字符 - 原始: '你好啊啊啊啊啊' -> 处理后: '你好啊*5'

性能说明

  • 使用智能算法,分别处理单字符、英文词组和中文连续重复
  • 平均处理时间约0.02毫秒/次
  • 支持批量处理
  • 内存占用低,支持实时处理大量文本

测试方法

运行独立测试脚本验证压缩逻辑:

python test_compression_v3_standalone.py

注意事项

  1. 该功能默认启用,如需关闭可设置 ENABLE_TEXT_COMPRESSION=false
  2. 最小重复次数可根据需求调整(建议保持5次)
  3. 压缩后的文本长度会明显减少,特别是在重复字符/词组较多的情况下
  4. 该功能只影响返回给客户端的结果,不影响原始识别数据
  5. 英文词组需要有空格分隔,中文词组需要连续重复

更新记录

  • 2025-10-07: 新增多字符词组压缩功能,支持中英文混合压缩
  • 2025-10-06: 新增文本重复字符压缩功能
  • 采用智能压缩算法,性能优异