声明:本文原文来源于GitHub,经本人翻译首发于CSDN,仅供技术分享所用,不作商用。欢迎大家关注我的公众号: gbxiao992
本存储库用于记录我使用Keras和Tensorflow开发端到端的语音识别模型的研究。
原文链接:https://github.com/igormq/asr-study/blob/master/README.md
我们的模型使用四个数据集进行训练: CSLU Spoltech (LDC2006S16), Sid, VoxForge, and LapsBM1.4. 部分数据集需要有偿下载。
您可以使用提供的脚本下载免费提供的数据集(可能需要一段时间):
$ cd data; sh download_datasets.sh
接下来,您可以将其预处理为hdf5文件。点击此处获取更多信息。
$ python -m extras.make_dataset --parser brsd --input_parser mfcc
您可以使用train.py脚本训练网络。欲了解更多使用信息请参阅这里。使用默认参数进行训练:
$ python train.py --dataset .datasets/brsd/data.h5
下载基于完整brsd数据集(包括CSLU数据集)预训练好的brsm v1.0 模型
$ mkdir models; sh download_brsmv1.sh
此外,您可以针对brsd测试集评估模型
$ python eval.py --model models/brsmv1.h5 --dataset .datasets/brsd/data.h5
测试集:LER 25.13%(使用光束搜索解码器,光束宽度为100)
使用某些数据集预测训练模型的输出:
$ python predict.py --model MODEL --dataset DATASET
您可以在datasets/ 路径下看到所有可用的数据集解析器。
您可以创建自己的数据集解析器。这是一个例子:
class CustomParser(DatasetParser):
def __init__(self, dataset_dir, name='default name', **kwargs):
super(CustomParser, self).__init__(dataset_dir, name, **kwargs)
def _iter(self):
for line in dataset:
yield {'duration': line['duration'],
'input': line['input'],
'label': line['label'],
'non-optional-field': line['non-optional-field']}
def _report(self, dl):
args = extract_statistics(dl)
report = '''General information
Number of utterances: %d
Total size (in seconds) of utterances: %.f
Number of speakers: %d''' % (args)
你可以在core/models.py路径下看到所有可用的模型。
您可以创建自定义模型。这里是基于CTC的模型的一个例子
def custom_model(num_features=26, num_hiddens=100, num_classes=28):
x = Input(name='inputs', shape=(None, num_features))
o = x
o = Bidirectional(LSTM(num_hiddens,
return_sequences=True,
consume_less='gpu'))(o)
o = TimeDistributed(Dense(num_classes))(o)
return ctc_model(x, o)
See LICENSE.md for more information