当前位置:   article > 正文

利用Python进行语音信号处理(一. 录制一段音频并且回放,绘制图像)_python 同时进行播放音频和动态画图

python 同时进行播放音频和动态画图

0. 安装sounddevice库

首先, 我们需要安装sounddevice库, 利用pip 可以很简单的完成
打开命令行输入

pip3 install sounddevice
  • 1

0.1 导入包

安装完之后, 我们将其导入

import sounddevice as sd

    0.2 代码

    这里我先把代码放出, 下面的代码

    1. 录音5秒(可以自行更改测试)
    2. 并且显示图像
    3. 关闭图像后播放音频
    import sounddevice as sd
    import matplotlib.pyplot as plt
    fs = 44100  # 指定采样频率
    duration = 5  # 指定持续时间
    #方法会立即返回, 但是会在后台继续的录音
    myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)
    # 调用wait(), wait()会在播放完成后才返回
    sd.wait()
    print('语音信号采集结束\nVoice signal picked finished')
    print('开始播放:\n Start to play:')
    print(myrecording[:,1])
    plt.plot(myrecording[:,1])
    plt.show()
    #方法会立即返回, 但是会在后台继续播放
    sd.play(myrecording, fs)
    # 调用wait(), wait()会在播放完成后才返回
    sd.wait()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    1. 录音

    1.1 确认当前默认设备可用

    我们可以利用以下方法属性来查询设备

    • sounddevice.query_devices(): 查询所有可用设备, 返回一个包含可用设备信息字典的元组
    • sounddevice.default.device: 查询默认设备, 是一个数组,有两个值
      • 第一个值为在sounddevice.query_devices()中的索引代表默认输入设备,
      • 第二个值为在sounddevice.query_devices()中的索引,代表默认输出设备

    利用操作系统自带的录音机, 确保当前默认设备可用, 这里不多说

    1.2 进行录音

    我们利用rec()方法进行录音,返回值为一个采样的数组, 这个方法会立即返回, 在后台进行录音, 返回值之后才会进行填充, 我们可用利用wait()方法, wait()方法会在录音完成之后返回

    myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=2)
    wait()
    • 1

    你可以利用sounddevice.default.device='设备名称'的方式来指定输入设备

    1.3 显示图像

    当然, 因为返回值是数组, 你也可用利用诸如matlplotlab的库把他给显示出来

    import matplotlib.pyplot as plt
    #此处省略部分代码
    plt.plot(myrecording[:,1])
    plt.show()
    
    • 1
    • 2
    • 3
    • 4

    注意,因为我们指定了两个信道, 所以myrecording 这个返回值会有两列, 我们取第一列即可

    在这里插入图片描述

    1.4 播放音频

    利用sd.play()来播放音频, 同样的, 这个方法也会立即返回, 需要调用wait()方法

    #方法会立即返回, 但是会在后台继续播放
    sd.play(myrecording, fs)
    # 调用wait(), wait()会在播放完成后才返回
    sd.wait()
    
    • 1
    • 2
    • 3
    • 4
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
    推荐阅读
    相关标签
      

    闽ICP备14008679号