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

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

作者: MessyS | 来源:发表于2019-04-09 14:14 被阅读0次

    日常前言

    项目教程目录: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 许可协议. 转载请注明出处!

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/qpguiqtx.html