| .. | ||
| core | ||
| recognition | ||
| synthesis | ||
| utils | ||
| plugin.py | ||
| README.md | ||
语音识别和合成插件
一个功能完整的语音识别和文本转语音合成插件,为EG引擎提供实时语音处理功能,支持多种语言、语音和音频效果处理。
功能特性
核心功能
- 语音识别: 实时语音转文本功能
- 文本转语音: 高质量文本转语音合成
- 音频处理: 专业的音频效果处理
- 多语言支持: 支持多种语言的识别和合成
- 多语音支持: 提供多种语音选择
- 实时处理: 低延迟的实时语音处理
- 音频文件操作: 支持音频文件的读写和处理
语音识别功能
- 实时语音识别: 持续监听并识别语音
- 多语言支持: 支持中文、英文、日文等多种语言
- 语音活动检测: 自动检测语音活动开始和结束
- 静音检测: 智能识别静音段并分割语音
- 自定义词汇: 支持添加专业词汇和术语
- 识别模式: 支持命令模式、听写模式和搜索模式
- 标点符号识别: 自动添加标点符号
- 脏话过滤: 可选的脏话过滤功能
- 备选结果: 支持返回多个备选识别结果
- 单词时间戳: 提供单词级别的精确时间戳
- 说话人分离: 识别不同说话人(需支持)
- 上下文偏向: 根据上下文提高识别准确率
- 增强模型: 支持使用增强识别模型
文本转语音功能
- 高质量合成: 专业级语音合成质量
- 多语言支持: 支持多种语言的语音合成
- 多语音选择: 提供多种男声、女声和中性声音
- 情感语音: 支持高兴、悲伤、愤怒等情感语音
- 语音定制: 可调节语速、音调、音量等参数
- SSML支持: 支持语音合成标记语言
- 音素支持: 支持音素级别的精确控制
- 语音克隆: 支持基于样本的语音克隆(需支持)
- 语音混合: 支持多个语音的混合使用
- 语音转换: 支持语音风格转换
- 神经网络语音: 支持使用神经网络生成的高质量语音
- 语音个性: 支持友好、专业、休闲等语音个性
- 自定义词典: 支持添加自定义发音词典
音频处理功能
- 音频格式支持: WAV、MP3等常见音频格式
- 采样率转换: 支持不同采样率之间的转换
- 音频效果: 20+种专业音频效果
- 混响(Reverb)
- 合唱(Chorus)
- 镶边(Flanger)
- 失真(Distortion)
- 压缩器(Compressor)
- 限制器(Limiter)
- 扩展器(Expander)
- 噪声门(Noise Gate)
- 去齿音器(De-esser)
- 均衡器(EQ)
- 颤音(Vibrato)
- 音高移位(Pitch Shift)
- 时间拉伸(Time Stretch)
- 音频分析: 音频级别检测、静音检测等
- 音频编辑: 淡入淡出、音频拼接、分割等
- 滤波器: 高通、低通等滤波器
- 动态处理: 压缩、限制、扩展等动态范围处理
性能优化
- 低延迟处理: 优化的实时处理算法
- 内存管理: 智能的内存使用和垃圾回收
- 多线程支持: 支持后台处理,不影响主线程
- 资源缓存: 缓存常用资源,提高处理速度
- 批量处理: 支持批量音频处理任务
使用方法
快捷键操作
- F1: 切换语音识别开关
- F2: 开始/停止语音监听
- F3: 测试文本转语音
- F4: 停止当前语音播放
- F5: 增加语音音量
- F6: 降低语音音量
- F7: 提高语音语速
- F8: 降低语音语速
- F9: 显示语音处理统计信息
- F10: 切换语音情感
- F11: 显示详细统计信息
- F12: 重置语音系统
GUI界面操作
插件会在屏幕右上角创建控制面板,可以通过按钮直接操作语音识别和合成功能。
编程接口
# 获取插件实例
speech_plugin = world.plugin_manager.get_plugin("speech_recognition_synthesis")
# 开始语音监听
speech_plugin.start_listening()
# 停止语音监听
speech_plugin.stop_listening()
# 合成语音
speech_plugin.synthesize_speech("你好,世界!")
# 设置语音识别回调
def on_speech_recognized(text):
print(f"识别到语音: {text}")
speech_plugin.set_speech_recognized_callback(on_speech_recognized)
# 设置语音合成回调
def on_speech_synthesized(audio_data, text):
print(f"合成语音: {text}")
speech_plugin.set_speech_synthesis_callback(on_speech_synthesized)
# 设置语言
speech_plugin.set_language('zh-CN') # 中文
speech_plugin.set_language('en-US') # 英文
# 设置语音
speech_plugin.set_voice('male1')
speech_plugin.set_voice('female2')
# 设置音量、语速、音调
speech_plugin.set_volume(0.8) # 80%音量
speech_plugin.set_speed(1.2) # 1.2倍语速
speech_plugin.set_pitch(1.1) # 1.1倍音调
# 获取支持的语言和语音
languages = speech_plugin.get_available_languages()
voices = speech_plugin.get_available_voices()
# 检查语音状态
is_speaking = speech_plugin.is_speaking()
is_listening = speech_plugin.is_listening
# 停止语音播放
speech_plugin.stop_speaking()
# 获取统计信息
stats = speech_plugin.get_stats()
核心组件
语音管理器 (SpeechManager)
负责管理语音识别和合成的核心功能,包括音频设备管理、音频数据处理等。
主要功能:
- 音频设备管理
- 音频数据缓冲和处理
- 录音和播放控制
- 音频预处理和后处理
- 音频级别检测和静音检测
语音识别器 (SpeechRecognizer)
负责将语音转换为文本,支持多种语言和识别引擎。
主要功能:
- 实时语音监听
- 语音活动检测
- 语音识别处理
- 静音段检测和分割
- 多语言支持
- 自定义词汇管理
语音合成器 (SpeechSynthesizer)
负责将文本转换为语音,支持多种语音和语言。
主要功能:
- 文本到语音合成
- 多语音支持
- 参数调节(语速、音调、音量)
- 音频效果处理
- SSML标记支持
- 音频播放控制
音频工具类 (AudioUtils)
提供音频处理和文件操作功能。
主要功能:
- 音频文件读写(WAV格式)
- 音频格式转换
- 采样率转换
- 音频效果处理
- 音频分析和编辑
- 音频信息获取
支持的语言
语音识别支持的语言
- 简体中文 (zh-CN)
- 繁体中文 (zh-TW)
- 英语(美国) (en-US)
- 英语(英国) (en-GB)
- 日语 (ja-JP)
- 韩语 (ko-KR)
- 法语 (fr-FR)
- 德语 (de-DE)
- 西班牙语 (es-ES)
- 俄语 (ru-RU)
语音合成支持的语言
- 简体中文 (zh-CN)
- 繁体中文 (zh-TW)
- 英语(美国) (en-US)
- 英语(英国) (en-GB)
- 日语 (ja-JP)
- 韩语 (ko-KR)
- 法语 (fr-FR)
- 德语 (de-DE)
- 西班牙语 (es-ES)
- 俄语 (ru-RU)
支持的语音
男声
- male1: 标准男声
- male2: 低沉男声
- male3: 明亮男声
女声
- female1: 标准女声
- female2: 温柔女声
- female3: 明亮女声
中性声音
- neutral1: 中性声音
- neutral2: 机器人声音
情感语音
- happy: 高兴
- sad: 悲伤
- angry: 愤怒
- excited: 兴奋
音频效果
插件提供丰富的音频效果处理功能:
时间域效果
- 混响 (Reverb): 模拟不同空间环境的混响效果
- 合唱 (Chorus): 增加声音的厚度和立体感
- 镶边 (Flanger): 创建独特的扫频效果
- 颤音 (Vibrato): 音高周期性变化效果
- 失真 (Distortion): 添加过载和失真效果
动态范围处理
- 压缩器 (Compressor): 控制音频动态范围
- 限制器 (Limiter): 防止音频削波
- 扩展器 (Expander): 扩展动态范围
- 噪声门 (Noise Gate): 过滤背景噪声
- 去齿音器 (De-esser): 减少语音中的刺耳音
滤波器效果
- 高通滤波器: 过滤低频噪声
- 低通滤波器: 过滤高频噪声
- 均衡器: 多频段频率调节
音高和时间处理
- 音高移位: 改变音频音高而不改变时长
- 时间拉伸: 改变音频时长而不改变音高
性能调优
实时处理优化
- 缓冲区管理: 使用高效的音频缓冲区管理机制
- 多线程处理: 关键处理任务在后台线程执行
- 内存优化: 智能的内存分配和回收
- 算法优化: 使用优化的数字信号处理算法
资源管理
- 智能预加载: 根据使用情况预加载语音资源
- 动态卸载: 自动卸载长时间未使用的资源
- 缓存机制: 缓存常用处理结果和音频数据
质量与性能平衡
- 可调节质量: 支持调节处理质量等级
- 自适应处理: 根据系统负载动态调整处理复杂度
- 批量处理: 支持批量处理任务以提高效率
扩展开发
添加新的语言支持
- 在语音识别器和合成器中添加新的语言代码
- 集成相应的语言识别和合成模型
- 更新语言列表和相关配置
添加新的语音
- 在语音合成器中注册新的语音名称
- 集成相应的语音合成模型或样本
- 实现语音参数配置
添加新的音频效果
- 在音频工具类中实现新的效果算法
- 添加效果参数验证和处理
- 实现效果的应用接口
添加新的识别模式
- 在语音识别器中实现新的识别模式
- 调整语音活动检测参数
- 优化特定模式下的处理流程
故障排除
语音识别问题
- 无法识别语音: 检查麦克风是否正常工作
- 识别准确率低: 检查语言设置是否正确,添加自定义词汇
- 识别延迟高: 检查系统资源使用情况,降低处理质量设置
- 无法开始监听: 检查插件是否已正确启用
语音合成问题
- 无法播放语音: 检查扬声器或耳机是否正常工作
- 语音质量差: 检查采样率设置,更新语音合成模型
- 合成速度慢: 检查系统资源使用情况,使用较低质量设置
- 没有声音输出: 检查音量设置,确认音频设备正常
音频处理问题
- 音频效果不明显: 检查效果参数设置
- 音频失真: 检查增益设置,避免削波
- 处理延迟高: 优化处理算法,使用更高效的数据结构
- 内存占用高: 检查缓冲区大小,及时释放不用资源
性能问题
- CPU使用率高: 使用性能分析工具定位瓶颈
- 内存泄漏: 检查资源释放,使用内存分析工具
- 响应缓慢: 优化算法,减少不必要的计算
API参考
Plugin类主要方法
初始化和控制
initialize()- 初始化插件enable()- 启用插件disable()- 禁用插件finalize()- 清理插件资源update(dt)- 更新插件状态
语音识别控制
start_listening()- 开始语音监听stop_listening()- 停止语音监听set_language(language)- 设置识别语言get_available_languages()- 获取支持的语言列表
语音合成控制
synthesize_speech(text, callback)- 合成语音stop_speaking()- 停止语音播放set_voice(voice)- 设置语音set_volume(volume)- 设置音量set_speed(speed)- 设置语速set_pitch(pitch)- 设置音调get_available_voices()- 获取支持的语音列表is_speaking()- 检查是否正在播放语音
回调函数设置
set_speech_recognized_callback(callback)- 设置识别回调set_speech_synthesis_callback(callback)- 设置合成回调set_error_callback(callback)- 设置错误回调
统计和信息
get_stats()- 获取插件统计信息
核心组件类
SpeechManager
start_recording()- 开始录音stop_recording()- 停止录音start_playback(audio_data)- 开始播放stop_playback()- 停止播放set_sample_rate(sample_rate)- 设置采样率get_audio_chunk()- 获取音频数据块
SpeechRecognizer
start_listening()- 开始监听stop_listening()- 停止监听set_language(language)- 设置语言set_silence_threshold(threshold)- 设置静音阈值get_available_languages()- 获取支持的语言
SpeechSynthesizer
synthesize(text, callback)- 合成语音stop_speaking()- 停止播放set_voice(voice)- 设置语音set_volume(volume)- 设置音量set_speed(speed)- 设置语速set_pitch(pitch)- 设置音调get_available_voices()- 获取支持的语音
AudioUtils
save_wav_file(filename, audio_data, sample_rate)- 保存WAV文件load_wav_file(filename)- 加载WAV文件apply_reverb(audio_data, room_size, damping, wet_level)- 应用混响apply_chorus(audio_data, rate, depth, mix)- 应用合唱resample_audio(audio_data, from_rate, to_rate)- 重采样音频normalize_audio(audio_data)- 归一化音频
音频格式支持
支持的音频格式:
- WAV: 未压缩的PCM音频
- MP3: MPEG音频层III(需要额外库支持)
- PCM: 原始脉冲编码调制数据
系统要求
硬件要求
- 处理器: 双核2.0GHz或更高
- 内存: 4GB RAM或更高
- 音频设备: 支持录音和播放的音频设备
- 存储空间: 100MB可用空间用于安装
软件要求
- 操作系统: Windows 7/8/10, macOS 10.12+, Ubuntu 18.04+
- Python: 3.7或更高版本
- 依赖库: numpy, scipy等科学计算库
版本信息
- 版本: 1.0.0
- 作者: EG Team
- 发布日期: 2024年
许可证
本插件遵循EG引擎许可证协议。