使用自定义模型的 Watson Speech-to-text 准确性低

Low accuracy of Watson Speech-to-text with custom model

Watson 对话服务无法识别我的 accent.Therefore 我使用了自定义模型,这是使用自定义模型前后的结果。

测试结果

在整合模型之前 :- 当你有一个他们有的座右铭时。希拉。贾巴之中。女人。

整合模型后 :- 我们给 Omatta David。斯里兰卡。贾巴之中。数字。政府

实际音频- Audio 49,Wijayaba Mawatha,Kalubowila,Dehiwela,Sri Lanka.Government.Gov.

我如何包含自定义模型- 我使用了演示中给出的相同文件 forked from github 在 socket.js 中,我包含了自定义 ID,如 picture.There 中所示,其中包含自定义模型的其他方式 (ways to integrate custom model) 但我想知道我所做的方法是否正确?

这是我用来创建自定义模型的 python 代码。 code link

这里是我执行python代码后JSON格式的语料库结果corpus file

这是自定义模型(custom model text file which was included in the code),我在其中包含了斯里兰卡的所有道路。

我分叉文件并编辑 socket.js 如下。

首先,除非我遗漏了什么,否则你说的几个词实际上并没有出现在 corpus1.txt 文件中。显然,该服务需要知道您希望它转录的单词。

接下来,该服务面向更常见的语音模式。任意名称的列表很困难,因为它无法根据上下文猜测单词。这通常是自定义语料库提供的,但在这种情况下不起作用(除非您碰巧按照它们在语料库中出现的确切顺序阅读名称 - 即使这样,它们也只出现一次并且没有任何上下文服务已经识别。)

为了弥补这一点,除了自定义词的语料库外,您可能需要为其中许多词提供 sounds_like 来指示发音:http://www.ibm.com/watson/developercloud/doc/speech-to-text/custom.shtml#addWords

这需要做更多的工作(必须为服务无法正确识别的每个单词完成这项工作),但应该会改善您的结果。

第三,您提供的音频文件有相当多的背景噪音,这会降低您的结果。更好的 microphone/recording location/etc。会有帮助。

最后,说得更清楚、口述准确并且尽可能接近 "standard" 美国英语口音也应该有助于提高结果。

我看到的主要问题是音频非常嘈杂(我听到背景中的火车轨道)。第二个问题是,应该检查从语料库中提取的 OOV 词的发音准确性。第三个问题可能是说话者的口音问题(我假设你使用的是美国英语模型)并且它有口音英语的问题。至于自定义模型训练数据,你可以尝试在你的训练数据中重复一些词(给新词更多的权重)。

托尼·李 IBM 演讲团队