Python--pyAudio播放wav格式声音

1、下载并安装pyaudio

pyaudio下载地址 : http://people.csail.mit.edu/hubert/pyaudio/packages/


2、pyaudio API接口使用文档

API文档地址 : http://people.csail.mit.edu/hubert/pyaudio/docs/#class-pyaudio


3、python代码

#!usr/bin/env python
#coding=utf-8

import pyaudio
import wave

#define stream chunk 
chunk = 1024

#open a wav format music
f = wave.open(r"C:\Users\CJP\Desktop\miss_you.wav","rb")
#instantiate PyAudio
p = pyaudio.PyAudio()
#open stream
stream = p.open(format = p.get_format_from_width(f.getsampwidth()),
				channels = f.getnchannels(),
				rate = f.getframerate(),
				output = True)
#read data
data = f.readframes(chunk)

#paly stream
while data != '':
	stream.write(data)
	data = f.readframes(chunk)

#stop stream
stream.stop_stream()
stream.close()

#close PyAudio
p.terminate()


4、关于wav格式文件读取,请参照如下网址博文:

读取wav格式文件: http://blog.csdn.net/xsc_c/article/details/8941338

5、函数说明

a、为了使用PyAudio,首先使用 pyaudio.PyAudio()函数,来实例化PortAudio, 通过这个函数来建立portaudio系统

b、为了录音或者播放音频,需要在设备上打开一个数据流,使用函数 pyaudio.PyAudio.open() . 这样就可以建立一个 pyaudio.Stream 用来录音或者播放。open函数介绍如下:


  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您可以按照以下步骤来获取麦克风声音并使用Python调用Pyaudio录制wav声音文件: 1. 安装Pyaudio库 您可以使用以下命令在命令行中安装Pyaudio库: ``` pip install pyaudio ``` 2. 导入所需的库 在编写Python代码之前,您需要导入以下库: ``` import pyaudio import wave ``` 3. 设置录音参数 在录制音频之前,您需要设置一些参数,如采样率、每个样本的位数和通道数等。在本例中,我们将设置以下参数: ``` chunk = 1024 # 每次读取的块大小 sample_format = pyaudio.paInt16 # 采样率 channels = 2 fs = 44100 # 采样率 seconds = 5 # 录制音频的时间 ``` 4. 创建Pyaudio对象 现在,您需要创建一个Pyaudio对象以访问音频硬件。您可以使用以下代码创建Pyaudio对象: ``` p = pyaudio.PyAudio() ``` 5. 开始录制声音 现在,您可以开始录制声音了。使用以下代码开始录制声音: ``` stream = p.open(format=sample_format, channels=channels, rate=fs, frames_per_buffer=chunk, input=True) ``` 6. 将录制的声音写入wav文件 使用以下代码将录制的声音写入.wav文件: ``` frames = [] for i in range(0, int(fs / chunk * seconds)): data = stream.read(chunk) frames.append(data) stream.stop_stream() stream.close() p.terminate() wf = wave.open("output.wav", "wb") wf.setnchannels(channels) wf.setsampwidth(p.get_sample_size(sample_format)) wf.setframerate(fs) wf.writeframes(b"".join(frames)) wf.close() ``` 7. 完整代码 ``` import pyaudio import wave # 设置录音参数 chunk = 1024 # 每次读取的块大小 sample_format = pyaudio.paInt16 # 采样率 channels = 2 fs = 44100 # 采样率 seconds = 5 # 录制音频的时间 # 创建Pyaudio对象 p = pyaudio.PyAudio() # 开始录制声音 stream = p.open(format=sample_format, channels=channels, rate=fs, frames_per_buffer=chunk, input=True) # 将录制的声音写入wav文件 frames = [] for i in range(0, int(fs / chunk * seconds)): data = stream.read(chunk) frames.append(data) stream.stop_stream() stream.close() p.terminate() wf = wave.open("output.wav", "wb") wf.setnchannels(channels) wf.setsampwidth(p.get_sample_size(sample_format)) wf.setframerate(fs) wf.writeframes(b"".join(frames)) wf.close() ``` 这就是如何使用Python调用Pyaudio获取麦克风声音并录制.wav声音文件的教程。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值