推荐TTS用pyttsx3(离线轻量)或gTTS(需网、多语言),高自然度选Coqui TTS;ASR离线首选Whisper.cpp或Vosk,在线可用云API。
语音合成(TTS)快速上手
Python中实现文本转语音,推荐使用pyttsx3(离线、轻量)或gTTS(需网络、支持多语言)。若追求自然度,可接入Coqui TTS(开源、支持微调)。
基础示例(pyttsx3):
- 安装:
pip install pyttsx3 - 初始化引擎并朗读:
import pyttsx3
engine = pyttsx3.init()
engine.s
ay("你好,这是语音合成")
engine.runAndWait() - 可调节语速、音量、选择本地语音(如Windows的Zira、David;macOS的Alex)
语音识别(ASR)主流方案选型
离线识别优先考虑Whisper.cpp(C++加速版Whisper)或Vosk(小模型、低延迟、支持中文);在线识别可用from vosk import Model, KaldiRecognizer 构建“听—理解—说”闭环,关键在音频流衔接与状态管理。不建议边录边播,应分阶段处理:录音 → 识别 → 逻辑响应 → 合成 → 播放。 典型结构示意: 若需更高识别准确率且接受一定资源开销,可用faster-whisper(CTranslate2加速)替代Vosk;语音合成换用微软Edge-TTS(免费、音色丰富、中文自然)。 操作要点: 项目打包为exe时,pyttsx3和Vosk易因路径问题失效;Whisper模型较大,首次运行会自动下载,建议预置模型路径并设 常见问题:
model = Model("vosk-model-small-zh-cn")
rec = KaldiRecognizer(model, 16000)
"text"字段TTS与ASR双向交互集成
进阶:轻量化Whisper+Edge-TTS端到端实践
pip install faster-whisper edge-ttsdevice="cuda"可提速3–5倍
import asyncio
async def tts_to_file(text):
await edge_tts.Communicate(text, "zh-CN-YunxiNeural").save("out.mp3")asyncio.run()驱动,避免阻塞主线程部署与避坑提醒
WHISPER_MODELS_DIR环境变量。

ay("你好,这是语音合成")






