今天我们来介绍一个好玩且实用的东西,我们使用python来实现一个录音的功能,废话不多说,让我们直接开始。
安装
使用 PIP 安装 PvRecorder:
pip3installpvrecorder查找可用的麦克风
一台计算机可以有多个麦克风, 例如,笔记本电脑有一个内置麦克风,可能还连接了一个耳机, 第一步是找到我们要录音的麦克风。
frompvrecorderimportPvRecorderforindex, deviceinenumerate(PvRecorder.get_audio_devices()):print(f"[{index}] {device}")
在 Dell XPS 笔记本电脑上运行上面的代码可以得到:
[0] Monitorofsof-hda-dspHDMI3/DP3Output[1] Monitorofsof-hda-dspHDMI2/DP2Output[2] Monitorofsof-hda-dspHDMI1/DP1Output[3] Monitorofsof-hda-dspSpeaker+Headphones[4] sof-hda-dspHeadsetMonoMicrophone+HeadphonesStereoMicrophone[5] sof-hda-dspDigitalMicrophone
记下目标麦克风的索引,我们将其传递给 PvRecorder 的构造函数, 不确定时,可以将 -1 传递给构造函数以使用默认麦克风。
录制音频
首先,创建一个 PvRecoder 实例, 你需要提供一个 device_index(见上文)和一个 frame_length。frame_length 是你希望在每次读取时接收的音频样本数, 我们将其设置为 512(16 kHz 音频的 32 毫秒), 然后调用 .start() 开始录制,录制完成后,继续循环调用 .read() 以接收音频,调用 .stop() 停止记录,然后调用 .delete() 以在完成后释放资源。
recorder=PvRecorder(device_index=-1, frame_length=512)try:recorder.start()whileTrue:frame=recorder.read()# Do something ...exceptKeyboardInterrupt:recorder.stop()finally:recorder.delete()
将音频保存到文件
你可以使用上面的代码片段中增加自己的逻辑做任何我们想做的事情, 无论你是要检测唤醒词、识别语音命令、将语音转录为文本、为搜索索引音频等,还是将其保存到文件中, 比如我们要保存到文件中,可以使用下面的代码, 这段代码显示了如何将音频保存为 WAVE 文件格式。
frompvrecorderimportPvRecorderimportwaveimportstructrecorder=PvRecorder(device_index=-1, frame_length=512)audio= []try:recorder.start()whileTrue:frame=recorder.read()audio.extend(frame)exceptKeyboardInterrupt:recorder.stop()withwave.open('audiotest', 'w') asf:f.setparams((1, 2, 16000, 512, "NONE", "NONE"))f.writeframes(struct.pack("h"*len(audio), *audio))finally:recorder.delete()

长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等
▲扫描二维码-免费领取
推荐阅读
总结:Python 的 NumPy 技术库的完整介绍和知识总结
点击 阅读原文了解更多