用树莓派打造自己的对话式智能家居控制中心——录音

日常前言

项目教程目录: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

这个时候的录音数据仅仅添加到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 许可协议. 转载请注明出处!

你可能感兴趣的:(树莓派)