我最近在训练一台使用神经网络和CTC损失的自动语音识别机。但我要做的第一件事是准备数据来训练模型。因为Librispeech包含大量的数据,所以最初我将使用它的一个子集,称为“Mini Librispeech ASR corpus”。(http://www.openslr.org/31/)。另外,我使用SeanNaren Pythorch绑定来处理扭曲ctc(https://github.com/SeanNaren/warp-ctc)。在
在阅读了音频文件和它们对应的转录本之后,我使用Spicy包计算每个音频文件的频谱图。当我要把光谱图输入到卷积层进行特征提取时,问题就出现了。每个谱图的长度不同于其他谱图。在对这个问题进行了更多的搜索之后,我发现我应该向网络传递特定数量的帧,但是为了达到这个目的,我需要用相应的字符(也包含空白符号)标记声音文件的每一帧。在
在python中有没有一种方法可以做到这一点?在
你的问题很宽泛:你在看音频文件的记录吗?如果是这样的话,它们在每个目录的文本文件中,每行都以文件名(不带扩展名)开头。在
你可以看这里:https://github.com/inikdom/rnn-speech/blob/master/util/dataprocessor.py
尤其是这种方法,它给出了一个音频文件列表及其对Librispeech语料库的转录:
注意:每个项目的第三个值总是无,因为它应该被另一个方法中的音频长度替换。在
你不需要用相应的字符来标记音频的每一帧,CTC将通过处理完整的音频和相应的转录本来处理它。在
将Pythorch神经网络与光谱图结合起来进行动态计算的最简单方法是使用nnAudio。在
相关问题 更多 >
编程相关推荐