专栏首页算法微时光python录音和播放

python录音和播放

pyaudio 官网

PyAudio 是语音处理的 Python库,提供了比较丰富的功能。

本次录音功能就是使用pyaudio库实现。

安装PyAudio库

按照官网安装:

sudo apt-get install python-pyaudio python3-pyaudio

使用pip安装报错,尝试使用以上安装方法,安装成功,也可以使用,如果安装遇到问题,可以尝试参考中的文章提供有解决办法。

录音

python代码:

"""PyAudio example: Record a few seconds of audio and save to a WAVE file."""

import pyaudio
import wave

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

print("* recording")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("* done recording")

stream.stop_stream()
stream.close()
p.terminate()

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()

简单解释的看下官网的使用说明:

对于API函数的使用有疑问可以查阅API文档

播放

python代码:

"""PyAudio Example: Play a WAVE file."""

import pyaudio
import wave
import sys

CHUNK = 1024

if len(sys.argv) < 2:
    print("Plays a wave file.\n\nUsage: %s filename.wav" % sys.argv[0])
    sys.exit(-1)

wf = wave.open(sys.argv[1], 'rb')

p = pyaudio.PyAudio()

stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                channels=wf.getnchannels(),
                rate=wf.getframerate(),
                output=True)

data = wf.readframes(CHUNK)

while data != '':
    stream.write(data)
    data = wf.readframes(CHUNK)

stream.stop_stream()
stream.close()

p.terminate()

参考

[python] 2、python使用pyaudio进行录音,及其在python虚拟环境virtualenv中安装遇到的问题

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • vim之IDE功能配置

    该功能的使用需要安装YouCompleteMe。使用的是vbundle来管理插件。

    李小白是一只喵
  • 静态寻路算法Dijkstra(python)

    第一步: 建立dis数组和T数组。 首先从起点A 开始,将A可以直接到达的顶点的权重记录在dis数组中,无法直达的记录无穷大(当前使用FFFF表示无穷大)。

    李小白是一只喵
  • Ubuntu deb软件包安装/卸载(asta)

    李小白是一只喵
  • C语言之Sleep函数

    Sleep函数: 功 能: 执行挂起一段时间   用 法: unsigned sleep(unsigned seconds);   注意:   在VC中使用带上...

    互联网金融打杂
  • 初识数据仓库和维度建模的一些理解和感悟

    校招面试的时候面的是java后台,收到的职位offer是大数据相关的东西,虽然啥也不会,不过想到这也是一个比较火的领域,就毅然决然的接受了这个offer。

    Meet相识
  • 福布斯中国发布最杰出商界女性排行榜,董明珠问鼎榜首;阿里B2B推出抗疫扶助计划;微信支付获得尼泊尔支付牌照|ITDaily

    福布斯中国发布最杰出商界女性排行榜,格力电器董事长董明珠问鼎榜首。今年上榜的100位商界女性所管理企业总市值近10万亿元。其中,超过半数的上榜者拥有硕士及以上(...

    用户6543014
  • 手机通话记录删除了怎么恢复?试试这两个方法吧

    手机通话记录删除了怎么恢复?对于一些用手机经常打电话的人来讲手机中就会有很多的通话记录在里面,有时候电话一多都搞不清楚通话对象是谁,所以也来不及将号码存入手机通...

    科技第六人
  • 手机通话记录删除了怎么恢复?安卓手机必备技巧

      手机通话记录删除了怎么恢复?在打电话的时候通常都会留下手机的通话记录,应该没有谁会去删除手机里面的通话记录吧,不过有时候我们在操作手机的时候可能会将手机里面...

    科技第六人
  • 按下电源键后竟然发生了这一幕 —— Android 系统启动流程分析

    作为一名 Android 程序员,你有没有想过:那么复杂的 Android 系统,它是怎样运行起来的,我们的 App 又是怎样被 Android 系统加载后呈现...

    程序亦非猿
  • Android 性能优化:多线程

    前言 Android Performance Patterns Season 5 主要介绍了 Android 多线程环境下的性能问题。通过介绍 Android ...

    张拭心 shixinzhang

扫码关注云+社区

领取腾讯云代金券