Python3.7在win10下安装PyAudio库以及实现音频的录制与播放

Python3.7 没法安装pyaudiopython

度娘的结果基本都是这个,pip install pyaudio.....然而十有八九你的电脑不买帐,会报错。app

报错信息:学习

    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.7
    copying src\pyaudio.py -> build\lib.win-amd64-3.7
    running build_ext
    building '_portaudio' extension
    error: [WinError 3] 系统找不到指定的路径。:     
    'D:\\VS2015\\VC\\PlatformSDK\\lib'

 

 

或者:测试

 [WinError 3] 系统找不到指定的路径。: 'C:\\Program Files (x86)\\Microsoft\\v8.1\\lib'

还有....ui

 

从网上找到解决Python安装PyAudio库问题基本都是基于Linux系统下的,因此我以为也有必要写一下这个安装库的方法,分享给到你们。spa

咱们的解决方法很是简单,就是pip不是不行么,那我们本身下好了库(PyAudio),安装上不就行了,这就是咱们的解决安装等疑难杂症问题的基本思路,对,就是变通;3d

到这个地址下载对应的whlcode

Python Extension Packages for Windowsorm

CP37就是python3.7--amd64应该都知道就是系统的位数,选好了再下。blog

 

下载好了以后打开“命令提示符”,cd到下载的路径而后,cd命令还不会使的话你该检讨一下,去百度一下吧,有不少的。

注:下面的FileName,就是文件名称,全名。(固然要加上文件格式.whl)

pip install "FileName"

 

安装成功测试:

 

安装成功后咱们来写一个实际案例,庆祝一下。

录制一个4s的wav格式音频文件,

由于RECORD_SECONDS = 5.

import pyaudio import wave #定义音频数据参数
CHUNK = 1024    #
FORMAT = pyaudio.paInt16 CHANNELS = 2   #渠道
RATE = 44100   #
RECORD_SECONDS = 5 WAVE_OUTPUT_FILENAME = "Recording.wav" p = pyaudio.PyAudio() # 打开数据流
stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) print("& Start 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() # 关闭 PyAudio 
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()

 

ok

 

同理我就直接上代码,音频的播放:

#引入库
import wave import pyaudio #定义数据流块
chunk = 1024

#只读方式打开wav文件
f = wave.open(r"FilePath","rb") p = pyaudio.PyAudio() #打开数据流
stream = p.open(format = p.get_format_from_width(f.getsampwidth()), channels = f.getnchannels(), rate = f.getframerate(), output = True) #读取数据
data = f.readframes(chunk) #播放FileName.wav
while data != None: stream.write(data) data = f.readframes(chunk) #中止数据流
stream.stop_stream() stream.close() #关闭 PyAudio
p.terminate()

 

文章实例的借鉴学习于:

相关文章
相关标签/搜索