Python Pydub 音频放大报错:'bad sample width' 解决方法
使用 Python Pydub 库对音频进行音量放大时,可能会遇到以下报错:
Traceback (most recent call last):
File "D:\graduation_design\enhance.py", line 11, in <module>
louder_audio.export("output_audio.wav", format="wav")
File "D:\python\lib\site-packages\pydub\audio_segment.py", line 890, in export
wave_data.setsampwidth(self.sample_width)
File "D:\python\lib\wave.py", line 353, in setsampwidth
raise Error('bad sample width')
wave.Error: bad sample width
Exception ignored in: <function Wave_write.__del__ at 0x0000022BDA40ADC0>
Traceback (most recent call last):
File "D:\python\lib\wave.py", line 326, in __del__
self.close()
File "D:\python\lib\wave.py", line 444, in close
self._ensure_header_written(0)
File "D:\python\lib\wave.py", line 464, in _ensure_header_written
raise Error('sample width not specified')
wave.Error: sample width not specified
这个报错可能是由于输入的音频文件的采样宽度不被支持所致。你可以尝试指定输出音频文件的采样宽度,例如:
louder_audio.export('output_audio.wav', format='wav', parameters=['-ac', '2', '-ar', '44100', '-sample_fmt', 's16'])
其中,parameters参数可以用来指定输出音频文件的一些参数,-ac表示声道数,这里设置为2,-ar表示采样率,这里设置为44100Hz,-sample_fmt表示采样宽度,这里设置为s16(16位有符号整数)。
如果还是无法解决问题,你可以尝试使用其他音频处理库,例如soundfile或librosa等。
原文地址: https://www.cveoy.top/t/topic/nvTy 著作权归作者所有。请勿转载和采集!