基于Python实现录音功能的示例代码

 更新时间:2023年02月07日 09:49:54   作者:Python数据开发  
今天我们来介绍一个好玩且实用的东西,我们使用python来实现一个录音的功能。文中的示例代码简洁易懂,感兴趣的小伙伴快跟随小编一起学习一下吧

今天我们来介绍一个好玩且实用的东西,我们使用python来实现一个录音的功能,废话不多说,让我们直接开始。

安装

使用 PIP 安装 PvRecorder:

pip3 install pvrecorder  

查找可用的麦克风

一台计算机可以有多个麦克风, 例如,笔记本电脑有一个内置麦克风,可能还连接了一个耳机, 第一步是找到我们要录音的麦克风。

from pvrecorder import PvRecorder  
  
for index, device in enumerate(PvRecorder.get_audio_devices()):  
   print(f"[{index}] {device}")  

在 Dell XPS 笔记本电脑上运行上面的代码可以得到:

[0] Monitor of sof-hda-dsp HDMI3/DP3 Output  
[1] Monitor of sof-hda-dsp HDMI2/DP2 Output  
[2] Monitor of sof-hda-dsp HDMI1/DP1 Output  
[3] Monitor of sof-hda-dsp Speaker + Headphones  
[4] sof-hda-dsp Headset Mono Microphone + Headphones Stereo Microphone  
[5] sof-hda-dsp Digital Microphone  

记下目标麦克风的索引,我们将其传递给 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()  
  
   while True:  
       frame = recorder.read()  
       # Do something ...  
except KeyboardInterrupt:  
   recorder.stop()  
finally:  
   recorder.delete()  

将音频保存到文件

你可以使用上面的代码片段中增加自己的逻辑做任何我们想做的事情, 无论你是要检测唤醒词、识别语音命令、将语音转录为文本、为搜索索引音频等,还是将其保存到文件中, 比如我们要保存到文件中,可以使用下面的代码, 这段代码显示了如何将音频保存为 WAVE 文件格式。

from pvrecorder import PvRecorder  
import wave  
import struct  
  
recorder = PvRecorder(device_index=-1, frame_length=512)  
audio = []  
  
try:  
   recorder.start()  
  
   while True:  
       frame = recorder.read()  
       audio.extend(frame)  
except KeyboardInterrupt:  
    recorder.stop()  
    with wave.open('audiotest', 'w') as f:  
        f.setparams((1, 2, 16000, 512, "NONE", "NONE"))  
        f.writeframes(struct.pack("h" * len(audio), *audio))  
finally:  
   recorder.delete()

到此这篇关于基于Python实现录音功能的示例代码的文章就介绍到这了,更多相关Python录音内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python Sanic框架实现文件上传功能

    Python Sanic框架实现文件上传功能

    Sanic是一个Python 3.5+的异步Web框架,它的设计理念与Flask相似,但采用了更高效的异步I/O处理,在处理文件上传时,Sanic同样提供了方便、高效的方法,本教程将结合实际案例,详细介绍如何在Sanic框架中实现文件上传的功能,需要的朋友可以参考下
    2024-08-08
  • python+opencv实现的简单人脸识别代码示例

    python+opencv实现的简单人脸识别代码示例

    这篇文章主要介绍了图像识别 python+opencv的简单人脸识别,具有一定参考价值,需要的朋友可以参考下。
    2017-11-11
  • Python的Web框架Django介绍与安装方法

    Python的Web框架Django介绍与安装方法

    这篇文章介绍了Python的Web框架Django与安装方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • python基于itchat实现微信群消息同步机器人

    python基于itchat实现微信群消息同步机器人

    本篇文章主要介绍了python基于itchat实现微信群消息同步机器人,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Python中使用OpenCV库来进行简单的气象学遥感影像计算

    Python中使用OpenCV库来进行简单的气象学遥感影像计算

    这篇文章主要介绍了Python中使用OpenCV库来进行简单的气象学图像计算的例子,文中是用来进行光谱辐射定标、大气校正和计算反射率,需要的朋友可以参考下
    2016-02-02
  • 深入浅析Python中list的复制及深拷贝与浅拷贝

    深入浅析Python中list的复制及深拷贝与浅拷贝

    这篇文章主要介绍了Python中list的复制及深拷贝与浅拷贝及区别解析 ,需要的朋友可以参考下
    2018-09-09
  • 浅谈Python peewee 使用经验

    浅谈Python peewee 使用经验

    这篇文章主要介绍了浅谈Python peewee 使用经验,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • python可视化数据分析pyecharts初步尝试

    python可视化数据分析pyecharts初步尝试

    这篇文章主要为大家介绍了python可视化数据分析pyecharts初步尝试,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • Python手绘可视化工具cutecharts使用实例

    Python手绘可视化工具cutecharts使用实例

    这篇文章主要介绍了Python手绘可视化工具cutecharts使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • python画一个圣诞树实现示例

    python画一个圣诞树实现示例

    这篇文章主要为大家介绍了使用python画一个圣诞树实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05

最新评论