gpt4 book ai didi

windows - (Python wave 模块)不能在不影响播放速度的情况下改变音频采样率

转载 作者:行者123 更新时间:2023-12-03 01:47:05 24 4
gpt4 key购买 nike

我目前正在开发一个项目,其中包括使用 pygame 在按下按钮时播放声音。由于我没有找到从应用程序录制声音的好方法(我反复尝试使用 Portaudio 的 PyAudio,但无法使其工作),我被迫使用外部程序录制音频。

我在 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 的采样率,但播放速度保持不变?

最佳答案

我在这里找到了答案:Python - downsampling wav audio file

它需要进行一些调整才能使其工作,只需在编写帧时使用 convert[0] 而不是 convert,因为方法不接受元组。

关于windows - (Python wave 模块)不能在不影响播放速度的情况下改变音频采样率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42809732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com