日常前言
项目教程目录:https://blog.csdn.net/qq_41082014/article/details/86605663
既然在硬件篇说到了对话的这么一个东西,那就来解析一下,对话的过程分为以下几个步骤
- 录音
- 语音识别
- 语音合成
- 播放合成的声音
那么,本篇先来搞定第一个功能——录音
开始
import wave
from pyaudio import PyAudio,paInt16
# 录制的音频质量参数
framerate=16000
NUM_SAMPLES=2000
channels=1
sampwidth=2
TIME=16 #单位为s,实际录音时间会缩小两倍
# 录音函数
def start():
pa=PyAudio()
stream=pa.open(format = paInt16,channels=1,
rate=framerate,input=True,
frames_per_buffer=NUM_SAMPLES)
my_buf=[]
count=0
while count<TIME
string_audio_data = stream.read(NUM_SAMPLES)
my_buf.append(string_audio_data)
count+=1
print('.')
save_wave_file('music/yinpin.wav',my_buf)
stream.close()
return my_buf
这个时候的录音数据仅仅添加到my_buf这个数组里,还没保存为文件,所以我们下面再定义一个函数来保存他
# 保存函数
def save_wave_file(filename,data):
wf=wave.open(filename,'wb')
wf.setnchannels(channels)
wf.setsampwidth(sampwidth)
wf.setframerate(framerate)
wf.writeframes(b"".join(data))
wf.close()
最后他他们组合起来使用,最终效果是录制一个5s左右的音频并保存到i_said.wav这个文件里
if __name__ == '__main__':
data = start()
save_wave_file('i_said.wav',data)
本文作者: Messy
原文链接:https://www.messys.top/detail/18
版权声明: 本博客所有文章除特别声明外, 均采用 CC BY-NC-SA 4.0 许可协议. 转载请注明出处!
网友评论