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()

 

文章實例的借鑑學習於:

相關文章
相關標籤/搜索