Python3.7在win10下安裝PyAudio庫以及實現音頻的錄制與播放


Python3.7 無法安裝pyaudio

度娘的結果基本都是這個,pip install pyaudio.....然而十有八九你的電腦不買賬,會報錯。

報錯信息:

    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'

還有....

 

從網上找到解決Python安裝PyAudio庫問題基本都是基於Linux系統下的,所以我覺得也有必要寫一下這個安裝庫的方法,分享給到大家。

我們的解決方法非常簡單,就是pip不是不行么,那咱們自己下好了庫(PyAudio),安裝上不就好了,這就是我們的解決安裝等疑難雜症問題的基本思路,對,就是變通;

到這個地址下載對應的whl

Python Extension Packages for Windows

CP37就是python3.7--amd64應該都知道就是系統的位數,選好了再下。

 

下載好了之后打開“命令提示符”,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()

 

文章實例的借鑒學習於:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM