我目前正在研究一個項目,其中包括使用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,但回放速度保持不變?
我想補充我發現了一個選項,允許我在錄製時修改採樣率,但我仍然想知道答案,考慮到可能會下載不同採樣率的聲音等。 – Meaty