VoiceLinkVR Server 新增了文本重复字符和词组压缩功能,可以将语音识别结果中的连续重复字符和词组压缩成"字符数量"或"词组数量"的格式,减少文本冗余并提高可读性。
- 支持单字符重复和词组重复压缩
- 只压缩连续重复5次及以上的字符/词组
- 压缩格式为:字符数量(如:啊5)或词组数量(如:测试5)
- 区分大小写
- 支持所有Unicode字符
- 支持中英文混合文本
- 单字符重复:如"啊啊啊啊啊" → "啊*5"
- 英文词组重复:如"Test test test test test" → "Test*5"
- 中文词组重复:如"测试测试测试测试测试" → "测试*5"
- 混合重复:如"哈 哈 哈 哈 哈 测试测试测试测试测试" → "哈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/whisper/transcriptions- Whisper语音识别/api/whisper/translations- Whisper语音翻译/api/func/translateToEnglish- 翻译到英文/api/func/translateToOtherLanguage- 翻译到其他语言/api/func/multitranslateToOtherLanguage- 多语言翻译
当文本被压缩时,系统会记录日志:
[MULTITRANSLATE] 压缩重复字符 - 原始: '你好啊啊啊啊啊' -> 处理后: '你好啊*5'
- 使用智能算法,分别处理单字符、英文词组和中文连续重复
- 平均处理时间约0.02毫秒/次
- 支持批量处理
- 内存占用低,支持实时处理大量文本
运行独立测试脚本验证压缩逻辑:
python test_compression_v3_standalone.py- 该功能默认启用,如需关闭可设置
ENABLE_TEXT_COMPRESSION=false - 最小重复次数可根据需求调整(建议保持5次)
- 压缩后的文本长度会明显减少,特别是在重复字符/词组较多的情况下
- 该功能只影响返回给客户端的结果,不影响原始识别数据
- 英文词组需要有空格分隔,中文词组需要连续重复
- 2025-10-07: 新增多字符词组压缩功能,支持中英文混合压缩
- 2025-10-06: 新增文本重复字符压缩功能
- 采用智能压缩算法,性能优异