我正在尝试读取一些音频wav文件,在添加更多音频文件之前,一切都很完美,但我遇到了错误。读取音频文件并使用以下代码将其重新采样到16KHz
def speech_file_to_array_fn(batch):
start = 0
stop = 20
srate = 16_000
speech_array, sampling_rate = sf.read(batch["file"], start = start * srate , stop = stop * srate)
batch["speech"] = librosa.resample(np.asarray(speech_array), sampling_rate, srate)
batch["sampling_rate"] = srate
batch["parent"] = batch["label"]
return batch
我收到这个错误:
ValueError: Input signal length=2 is too small to resample from 44100->16000
我试着在阅读后转换音频文件,但没有工作
感谢
我相信这个问题已经在librosa
的GitHub上讨论过了。
我以前从未使用过这个库,但从这个评论来看,在你的情况下,你可以做以下事情:
def speech_file_to_array_fn(batch):
start = 0
stop = 20
srate = 16_000
speech_array, sampling_rate = sf.read(batch["file"], start = start * srate , stop = stop * srate)
speech_array = speech_array.T
batch["speech"] = librosa.resample(np.asarray(speech_array), sampling_rate, srate)
batch["sampling_rate"] = srate
batch["parent"] = batch["label"]
return batch
让我知道这是否有效,因为我没有办法测试它。