EG/plugins/user/speech_recognition_synthesis
2025-12-12 16:16:15 +08:00
..
core 编译修复 2025-12-12 16:16:15 +08:00
recognition 编译修复 2025-12-12 16:16:15 +08:00
synthesis 编译修复 2025-12-12 16:16:15 +08:00
utils 编译修复 2025-12-12 16:16:15 +08:00
plugin.py 编译修复 2025-12-12 16:16:15 +08:00
README.md 编译修复 2025-12-12 16:16:15 +08:00

语音识别和合成插件

一个功能完整的语音识别和文本转语音合成插件为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): 减少语音中的刺耳音

滤波器效果

  • 高通滤波器: 过滤低频噪声
  • 低通滤波器: 过滤高频噪声
  • 均衡器: 多频段频率调节

音高和时间处理

  • 音高移位: 改变音频音高而不改变时长
  • 时间拉伸: 改变音频时长而不改变音高

性能调优

实时处理优化

  1. 缓冲区管理: 使用高效的音频缓冲区管理机制
  2. 多线程处理: 关键处理任务在后台线程执行
  3. 内存优化: 智能的内存分配和回收
  4. 算法优化: 使用优化的数字信号处理算法

资源管理

  1. 智能预加载: 根据使用情况预加载语音资源
  2. 动态卸载: 自动卸载长时间未使用的资源
  3. 缓存机制: 缓存常用处理结果和音频数据

质量与性能平衡

  1. 可调节质量: 支持调节处理质量等级
  2. 自适应处理: 根据系统负载动态调整处理复杂度
  3. 批量处理: 支持批量处理任务以提高效率

扩展开发

添加新的语言支持

  1. 在语音识别器和合成器中添加新的语言代码
  2. 集成相应的语言识别和合成模型
  3. 更新语言列表和相关配置

添加新的语音

  1. 在语音合成器中注册新的语音名称
  2. 集成相应的语音合成模型或样本
  3. 实现语音参数配置

添加新的音频效果

  1. 在音频工具类中实现新的效果算法
  2. 添加效果参数验证和处理
  3. 实现效果的应用接口

添加新的识别模式

  1. 在语音识别器中实现新的识别模式
  2. 调整语音活动检测参数
  3. 优化特定模式下的处理流程

故障排除

语音识别问题

  1. 无法识别语音: 检查麦克风是否正常工作
  2. 识别准确率低: 检查语言设置是否正确,添加自定义词汇
  3. 识别延迟高: 检查系统资源使用情况,降低处理质量设置
  4. 无法开始监听: 检查插件是否已正确启用

语音合成问题

  1. 无法播放语音: 检查扬声器或耳机是否正常工作
  2. 语音质量差: 检查采样率设置,更新语音合成模型
  3. 合成速度慢: 检查系统资源使用情况,使用较低质量设置
  4. 没有声音输出: 检查音量设置,确认音频设备正常

音频处理问题

  1. 音频效果不明显: 检查效果参数设置
  2. 音频失真: 检查增益设置,避免削波
  3. 处理延迟高: 优化处理算法,使用更高效的数据结构
  4. 内存占用高: 检查缓冲区大小,及时释放不用资源

性能问题

  1. CPU使用率高: 使用性能分析工具定位瓶颈
  2. 内存泄漏: 检查资源释放,使用内存分析工具
  3. 响应缓慢: 优化算法,减少不必要的计算

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引擎许可证协议。