Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python pydub:导出从numpy数组创建的音频段时出现错误的采样宽度错误_Python 3.x - Fatal编程技术网

Python 3.x Python pydub:导出从numpy数组创建的音频段时出现错误的采样宽度错误

Python 3.x Python pydub:导出从numpy数组创建的音频段时出现错误的采样宽度错误,python-3.x,Python 3.x,我有一个长度为109890个浮点数的numpy数组 然后使用以下内容创建AudioSegment实例: segment = AudioSegment(data=sinewave.tobytes(), sample_width=sinewave.dtype.itemsize, frame_rate=frameRate, channels=1) #where frameRate is 44100 segment.export('redgiant.mp3', format='mp3') 但我得到

我有一个长度为109890个浮点数的numpy数组

然后使用以下内容创建AudioSegment实例:

segment = AudioSegment(data=sinewave.tobytes(), sample_width=sinewave.dtype.itemsize, frame_rate=frameRate, channels=1)

#where frameRate is 44100

segment.export('redgiant.mp3', format='mp3')
但我得到了以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/osiris/anaconda3/lib/python3.6/site-packages/pydub/audio_segment.py", line 787, in export
    wave_data.setsampwidth(self.sample_width)
  File "/Users/osiris/anaconda3/lib/python3.6/wave.py", line 343, in setsampwidth
    raise Error('bad sample width')
wave.Error: bad sample width
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
导出文件“/Users/osiris/anaconda3/lib/python3.6/site packages/pydub/audio_segment.py”,第787行
波形数据设置采样宽度(自采样宽度)
文件“/Users/osiris/anaconda3/lib/python3.6/wave.py”,第343行,设置采样宽度
raise错误(“错误的样本宽度”)
错误:采样宽度不正确
这是因为我的初始正弦波有一个任意长度,它不适合作为sampleWidth*frameRate的倍数吗?

我有类似的问题

segment = AudioSegment(data=sinewave.astype("float32").tobytes(), sample_width=4, frame_rate=frameRate, channels=1)
解决了。这似乎与以下问题有关: