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()
文章實例的借鑑學習於:
http://people.csail.mit.edu/hubert/pyaudio/docs/#class-pyaudio