2017-03-15 147 views
0

我目前正在研究一個項目,其中包括使用pygame在按鈕按下時播放聲音。由於我沒有找到從應用程序錄制聲音的好方法(我曾多次嘗試與Portaudio一起使用PyAudio,但無法使其工作)我不得不使用外部程序來錄製音頻。(Python波形模塊)不能改變音頻採樣率而不影響播放速度

我在pyaudio混音器中導入的聲音的採樣率爲44.1 kHz,而節目錄制的聲音爲48 kHz。

問題來了: 當我錄製音頻時一切正常,但如果我想導入錄製的文件以備後用,它的播放速度比平時慢。

我發現是因爲採樣率太高,而且我只能用pyaudio調音臺設置一個採樣率,所以我決定嘗試將新文件的採樣率修改爲44,1 kHz,代碼如下:

import wave 
spf = wave.open('C:\Users\mavri\Desktop\My Recordings\zvuk.wav', 'rb')     
CHANNELS = spf.getnchannels() 
swidth = spf.getsampwidth() 
RATE=spf.getframerate() 
signal = spf.readframes(-1) 
spf.close() 
wf = wave.open('C:\Users\mavri\Desktop\My Recordings\zvuk.wav', 'wb') 
wf.setnchannels(CHANNELS) 
wf.setsampwidth(swidth) 
wf.setframerate(44100) 
wf.writeframes(signal) 
wf.close() 

現在的問題是一樣的,但這次它會影響音頻文件,而不是pygame。音頻文件比平常慢。 我試着用樣本寬度乘以新的採樣率併除以44100,但我得到的只是很多嘶嘶的聲音,它提醒了聲音,但卻遠遠不及它。

我的問題是:如何修改提供的代碼,以便創建新文件的採樣率爲44.1 kHz,但回放速度保持不變?

+0

我想補充我發現了一個選項,允許我在錄製時修改採樣率,但我仍然想知道答案,考慮到可能會下載不同採樣率的聲音等。 – Meaty

回答