语音采集实验模块
作者:毛栗小舞狼
本文档是智能系统集成课程所对应的教学资料
本文档采用Markdown格式进行记录
项目功能
- 录音,保存为wav格式。
- 声音转文字,全面支持中文。
用作学习实验,为构造更大的应用打基础。
录完发现我的声音挺难听的,下次一定要换个录音好听的电脑
技术选型
录音
- 录音用PyAudio实现
- 保存格式为wav文件
PyAudio库通过pip安装
pip是可以切换国内源的
语音转文字
- 输入格式为wav文件
FunASR(依赖过于复杂暂不使用)
依赖:
- Python >= 3.8
- PyTorch >= 1.13
- torchaudio
Vosk
依赖:
- 下载中文语音模型:
从 Vosk 官方网站 https://alphacephei.com/vosk/ 下载中文语音模型,
例如 vosk-model-cn-0.22,并解压到项目目录中 - 模型国内下载:
https://gitcode.com/open-source-toolkit/efc8a/tree/main
案例代码:
import json
import pyaudio
from vosk import Model, KaldiRecognizer
model = Model("vosk-model-small-cn-0.3")
recognizer = KaldiRecognizer(model, 16000)
p = pyaudio.PyAudio()
stream = p.open(
format=pyaudio.paInt16,
channels=1,
rate=16000,
input=True,
frames_per_buffer=8000
)
print("开始说话,按Ctrl+C停止...")
try:
while True:
data = stream.read(4000)
if recognizer.AcceptWaveform(data):
result = json.loads(recognizer.Result())
print(result.get("text",""))
else:
partial_result = json.loads(recognizer.PartialResult())
print(partial_result.get("partial",""))
except KeyboardInterrupt:
print("停止录音")
stream.stop_stream()
stream.close()
p.terminate()