当前位置: 首页 > news >正文

yolo8+ASR+NLP+TTS(视觉语音助手)

🧩 模块总览:

步骤模块作用
麦克风录音(VAD支持)获取语音并判断是否有人说话
Whisper语音识别把语音内容识别为文字
DeepSeek 聊天接口发送用户提问并获取 AI 回复
edge-tts 朗读回答把 DeepSeek 回答读出来
整合成语音助手主循环全流程结合:说话 → 回答 → 播报

 以下是构建语音助手所用的 每个依赖库的功能介绍

📦 所有依赖包及其作用

库名称pip 安装命令功能描述
sounddevicepip install sounddevice🎤 通过麦克风录音,支持 NumPy 格式的音频流
scipypip install scipy🧪 用于将音频保存为 .wav 文件格式(scipy.io.wavfile.write
numpypip install numpy🔢 音频处理的核心库,存储录音数据等数组操作
webrtcvadpip install webrtcvad🛑 判断当前音频中是否“有人在说话”(VAD:语音活动检测)
whisperpip install openai-whisper🧠 OpenAI 的语音识别模型,支持中英文转文字
ffmpegbrew install ffmpeg(Mac 必装)🎞 Whisper 使用 ffmpeg 处理音频格式,它是底层音视频工具
requestspip install requests🌐 与 DeepSeek 的接口通信(发送问题,获取回复)
edge-ttspip install edge-tts🗣️ 使用微软 Edge 浏览器的 TTS 引擎,把文本朗读成语音(保存为 mp3)
subprocessPython 标准库🧾 用于调用系统命令(如播放 mp3 文件)
cv2(可选)pip install opencv-python📷 摄像头图像捕捉(如启用视觉功能时使用)
tempfilePython 标准库🧹 自动管理临时音频文件或图片文件
threadingPython 标准库🔁 异步执行任务(如边录音边播放,防止阻塞)
queuePython 标准库🧺 用于线程间音频数据的传递或控制

🧩 每个模块与依赖关系图示:


✅ 模块①:麦克风录音 + 说话检测(VAD)

🔧 安装依赖:

pip install sounddevice webrtcvad numpy scipy

 ✅ 示例代码

import sounddevice as sd
import numpy as np
from scipy.io.wavfile import write
import webrtcvadSAMPLE_RATE = 16000
DURATION = 1  # 秒
vad = webrtcvad.Vad(1)def record_audio():audio = sd.rec(int(SAMPLE_RATE * DURATION), samplerate=SAMPLE_RATE, channels=1, dtype='int16')sd.wait()return audio.squeeze()def is_speech(audio):frame_size = int(SAMPLE_RATE * 30 / 1000)for i in range(0, len(audio), frame_size):frame = audio[i:i+frame_size]if len(frame) < frame_size:continueif vad.is_speech(frame.tobytes(), SAMPLE_RATE):return Truereturn Falseif __name__ == "__main__":print("开始监听...")while True:audio = record_audio()if is_speech(audio):print("[检测] 有人说话")else:print("[检测] 安静")

✅ 模块②:使用 Whisper 识别中文语音

🔧 安装:

openai-whisper和ffmpeg已经在【yolo8+声纹识别(实时字幕)】介绍如何安装

✅ 示例代码

import whisper
from scipy.io.wavfile import writemodel = whisper.load_model("base")  # 支持中文def save_audio(audio, path="temp.wav"):write(path, 16000, audio)def transcribe(path):result = model.transcribe(path, language="zh")return result["text"]if __name__ == "__main__":from module1 import record_audioaudio = record_audio()save_audio(audio)print("识别结果:", transcribe("temp.wav"))

✅ 模块③:调用 DeepSeek 接口进行对话

🔧 安装:

pip install requests

 ✅ 示例代码

import requestsAPI_KEY = "你的DeepSeek_API_Key"def chat_with_deepseek(text):url = "https://api.deepseek.com/v1/chat/completions"headers = {"Authorization": f"Bearer {API_KEY}","Content-Type": "application/json"}payload = {"model": "deepseek-chat","messages": [{"role": "system", "content": "你是一个语音助手"},{"role": "user", "content": text}]}resp = requests.post(url, json=payload, headers=headers)return resp.json()["choices"][0]["message"]["content"]if __name__ == "__main__":print(chat_with_deepseek("你好"))

✅ 模块④:使用TTS 朗读语音回答

🗣️ 主流 Python 文本转语音(TTS)库/方案对比

方案名称是否联网中文支持安装难度声音自然度可自定义声音跨平台朗读延迟备注说明
edge-tts✅ 是✅ 强中等⭐⭐⭐⭐部分支持(系统语音)✅ 是⭐⭐接口调用微软 Edge 浏览器 TTS,效果好
pyttsx3❌ 否❌ 弱(Windows 支持)简单⭐⭐✅ 支持本地语音合成器✅ 是⭐⭐⭐离线,本地语音引擎(如 SAPI5, NSSpeech)
gTTS✅ 是✅ 支持简单⭐⭐⭐⭐❌ 不支持✅ 是⭐⭐⭐Google 接口,不稳定,有速率限制
Bark❌ 否❌ 无中文非常复杂⭐⭐⭐⭐⭐✅ 可训练音色✅ 是⭐⭐需 GPU,强大但重型
TTS by Coqui❌ 否✅ 支持较复杂⭐⭐⭐⭐✅ 可微调✅ 是

 使用TTS by Coqui 是一个强大、开源且支持中文的 TTS 引擎,适合本地部署,音质优秀。

pip install TTS

如果安装太慢,建议使用清华镜像:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple TTS

 

✅ 下载语音模型:使用 Python 手动下载模型(推荐)

from TTS.utils.manage import ModelManagermodel_name = "tts_models/zh-CN/baker/tacotron2-DDC-GST"
manager = ModelManager()
paths = manager.download_model(model_name)
print("模型下载完成,路径为:", paths)

 

先搁置,后面在写

http://www.dtcms.com/a/284343.html

相关文章:

  • 基于Rust Softplus 函数实践方法
  • 【通识】网络的基础知识
  • 学习日志预告
  • 【测试100问】为什么要做接口测试?
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | GoodCheapFast(Good - Cheap - Fast三选二开关)
  • 区块链之Casper协议背景、演变发展、运作机制和潜在风险
  • 周志华《机器学习导论》第8章 集成学习 Ensemble Learning
  • 2025开源组件安全工具推荐OpenSCA
  • LVS(Linux virtual server)
  • AWS Lambda 最佳实践:构建高效无服务器应用的完整指南
  • 多维动态规划题解——最长公共子序列【LeetCode】记忆化搜索翻译成递推
  • CCS缺陷|冻干/灌装10大缺陷暴露无菌生产系统性漏洞:气流流型缺陷
  • 【android bluetooth 协议分析 03】【蓝牙扫描详解 3】【Bluetooth 中 EIR、IR、BLE 普通广播与扩展广播详解】
  • 数仓建设中,系统数据录入错误或者延迟,如何对历史数据修复或补入?
  • 安装物理机ubuntu系统
  • 初试Spring AI实现聊天功能
  • PyCharm 高效入门指南(引言 + 核心模块详解)
  • ubuntu22 npm install electron --save-dev 失败
  • 基于Rust游戏引擎实践(Game)
  • 智能体开发工具链全景图:IDE、调试器与监控平台
  • 营业执照识别-营业执照文字识别API-营业执照真伪
  • Flutter状态管理篇之ChangeNotifier(一)
  • 什么是协变(Covariant)与逆变(Contravariant)?
  • 在 Windows Server RDS 上配置用户配置文件磁盘查找对应的用户名
  • 第2章通用的高并发架构设计——2.5 高并发读场景总结:CQRS
  • 【计算机网络】第四章:网络层(上)
  • Spring中事务失效的情况深度分析
  • 深入理解 KVM 子系统:从虚拟化核心到内核实现的全景解析
  • 7.18 note
  • 第十八节:第三部分:java高级:反射-获取构造器对象并使用