python - DeepSpeech 无法学习波斯语

标签 python tensorflow speech-recognition farsi mozilla-deepspeech

我正在使用 KenLM 生成的语言模型从头开始训练 DeepSpeech(没有检查点),如 doc 中所述。 。该数据集是波斯语通用语音数据集。

我的配置如下:

  1. 批量大小 = 2(由于 cuda OOM)
  2. 学习率 = 0.0001
  3. 编号。神经元 = 2048
  4. 编号。纪元 = 50
  5. 火车组大小 = 7500
  6. 测试和开发集大小 = 5000
  7. 第 1 层到第 5 层的 dropout = 0.2(也实验了 0.4,结果相同)

训练和 val 损失在训练过程中逐渐减少,但几个时期后 val 损失不再减少。训练损失约为 18,val 损失约为 40。

在过程结束时,预测都是空字符串。有什么想法可以改进模型吗?

最佳答案

Common Voice 中的波斯语数据集包含大约 280 小时的经过验证的音频,因此这应该足以创建一个比您报告的准确度更高的模型。

这里有帮助的是了解模型的 CER 和 WER 数字是多少?能够看到这些表明最佳行动方案是否取决于声学模型的超参数或KenLM语言模型。区别是explained here in the testing section of the DeepSpeech PlayBook .

您也可能需要在波斯数据集上执行迁移学习。我假设波斯语数据集是用 Alefbā-ye Fārsi 编写的。这意味着您需要放弃字母表层才能从English checkpoints学习。 (使用拉丁字母)。

有关如何执行迁移学习的更多信息是 in the DeepSpeech documentation ,但本质上,您需要做两件事:

  • 使用 --drop_source_layers 3 标志删除源层,以允许从另一个字母表进行迁移学习
  • 使用 --load_checkpoint_dir deepspeech-data/deepspeech-0.9.3-checkpoint 标志指定从何处加载检查点以执行迁移学习。

关于python - DeepSpeech 无法学习波斯语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67347479/

相关文章:

使用语音进行性别识别的开源工具

Python TCP & UDP 代理/中继

speech-recognition - 语音识别在 Unity Hololens 项目中不起作用

python - 如何使类返回整数实例

linux - tensorflow 和 openSUSE

Tensorflow:在代码中的 NN 层之后访问占位符的形状

python - 如何在联邦学习中向客户端权重添加噪声(差异隐私)?

ios - 是否可以通过语音更改标签?

python - 如何修复此 Python TypeError : iteration over non-sequence?

python - 使用 BeautifulSoup 通过超链接访问表格数据