【发布时间】:2021-11-25 04:35:46
【问题描述】:
我有一个自定义语音识别模型,它转换为 TFLite,在 PC 上的 python 中表现出色。在 Android 上使用相同的 TFLite 模型运行推理时,准确性会下降。所有处理都发生在 TFLite 模型层(特征提取等)中,因此 Android 中没有代码可以产生影响。在 python 和 Android 中,模型的输入是波形,输出是 logits。我已经仔细检查过,Android 上的麦克风输入质量很好,但模型的性能比 PC 上的差很多。
我的模型中有批量标准化层,我怀疑它们可能是问题所在。我不确定为什么Android和python之间会出现不一致。有没有其他人遇到过这个问题?
我排除的事情:
- 麦克风 - 我在 Android 和 PC 上使用相同的 BT 耳机
- 模型架构 - 我尝试了两种不同的模型架构(DeepSpeech 和 Jasper),结果都相同 Android 上的准确性下降,但它们在 PC 上运行完美
- 量化 - 我的模型已量化,但效果很好,在 PC 上没有精度损失
【问题讨论】:
-
相反...对于在python或android中使用的特定音频文件,输出完全相同。所以基本上在两个实现中都使用特定的音频文件,并尝试调试错误在哪里。
标签: python android speech-recognition tensorflow2.0 tensorflow-lite