☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜
构建完全离线、隐私可控的语音交互系统需整合whisper(asr)、deepseek-r1(本地llm)和vits(tts)三大模块,通过音频采集、转录、响应生成与语音合成闭环实现全本地化运行。
如果您希望构建一个完全离线、隐私可控的语音交互系统,则需整合语音识别(asr)、本地大语言模型(llm)推理与语音合成(tts)三大模块。whisper提供高鲁棒性语音转文本能力,deepseek-r1等轻量化开源大模型支持本地意图理解与响应生成,配合vits类tts模型实现自然语音反馈。以下是具体实施路径:
一、部署Whisper语音识别模块
Whisper模型可在无网络环境下完成端到端语音转录,tiny/base/small版本适用于CPU或低显存GPU设备,兼顾速度与精度。其多语种支持与抗噪能力使其成为本地ASR首选。
1、创建conda虚拟环境并激活:
conda create -n voice_assistant python=3.10
conda activate voice_assistant
2、安装带CUDA支持的PyTorch(若使用NVIDIA GPU):
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
3、安装Whisper及配套依赖:
pip install transformers whisper sounddevice numpy
4、加载tiny模型进行推理:
asr_pipeline = pipeline("automatic-speech-recognition", model="openai/whisper-tiny", device=0)
二、集成DeepSeek-R1本地大模型
DeepSeek-R1-7B模型专为消费级硬件优化,在RTX 3060(12GB显存)或更高配置上可实现流畅对话推理,支持中文指令遵循、实体抽取与上下文连贯响应生成,无需调用远程API。
1、安装DeepSeek官方推理包:
pip install deepseek-coder
2、加载7B量化版本(如AWQ或GPTQ格式)以降低显存占用:
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("deepseek-ai/DeepSeek-R1-7B", device_map="auto", load_in_4bit=True)
tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-R1-7B")
3、构造prompt模板,注入ASR输出文本并截断至2048 token以内,防止OOM。
三、配置VITS语音合成模块
VITS采用端到端变分自编码器架构,相比传统拼接式TTS显著提升语音自然度与韵律一致性,且支持中文音色微调,适合构建个性化语音助手。
1、安装TTS库及预训练模型:
pip install TTS
tts --list_models | grep zh-CN
2、下载并加载中文VITS模型(如“zh-CN/biao/vits”):
from TTS.api import TTS
tts = TTS(model_name="tts_models/zh-CN/biao/vits", progress_bar=False, gpu=True)
从零搭建飞书机器人。支持 MiniMax/MiMo 等模型、工具调用(搜索/天气/百科/记忆)、Skill 架构。一站式交付可上线运行的飞书群聊 bot。基础版本,后续可自行升级能力
3、将LLM生成文本转为.wav文件:
tts.tts_to_file(text="你好,我是本地语音助手", file_path="output.wav")
四、构建端到端语音交互主流程
通过音频采集、ASR转录、LLM响应生成、TTS语音合成四阶段闭环,实现单次唤醒—说话—应答的完整交互链路,所有环节均在本地运行,不上传任何原始音频或文本。
1、使用sounddevice实时录制5秒浮点型单声道音频:
recording = sd.rec(int(5 * 16000), samplerate=16000, channels=1, dtype='float32')
2、将音频张量传入Whisper pipeline获取文本结果:
transcript = asr_pipeline(recording)["text"]
3、将transcript拼入system/user prompt后送入DeepSeek模型生成response:
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=128)
4、解码response并交由VITS合成语音:
text_output = tokenizer.decode(outputs[0], skip_special_tokens=True)
tts.tts_to_file(text=text_output, file_path="reply.wav")
五、优化低资源设备运行体验
针对仅配备i7 CPU与32GB内存的设备,需关闭GPU加速并启用量化推理,牺牲部分响应速度换取全流程本地化可行性,同时限制音频采样率与模型参数规模以控制内存峰值。
1、Whisper加载时指定device=-1强制CPU运行:
asr_pipeline = pipeline("automatic-speech-recognition", model="openai/whisper-tiny", device=-1)
2、DeepSeek模型启用4-bit量化与CPU offload:
model = AutoModelForCausalLM.from_pretrained("deepseek-ai/DeepSeek-R1-7B", load_in_4bit=True, device_map={"": "cpu"})
3、TTS切换至轻量FastSpeech2模型(需提前下载对应checkpoint):
tts = TTS(model_name="tts_models/zh-CN/fastspeech2", gpu=False)










