我一直在研究构建移动/网络应用程序的可行性,该应用程序允许用户说出一个短语并检测用户的口音(波士顿,纽约,加拿大等)。用户可以说大约5到10个预定义短语。我熟悉一些可用的Speech to Text API(Nuance,Bing,Google等),但似乎没有提供这种附加功能。我发现的最接近的示例是Google即时或微软的说话人识别API:
http://www.androidauthority.com/google-now-accents-515684/
https://www.microsoft.com/cognitive-services/en-us/speaker-recognition-api
因为有5-10个预定义的短语,我想使用像Tensorflow或Wekinator这样的机器学习软件。我将每个重音中创建的初始音频用作初始数据。在我深入研究这条道路之前,我只是希望得到一些关于这种方法的反馈,或者是否有更好的方法。如果我需要澄清任何内容,请告诉我。
答案 0 :(得分:4)
这种罕见的任务没有公共API。
作为语言检测的重音检测通常用i向量实现。教程是here。实施是available in Kaldi。
即使你的句子是固定的,你也需要大量的数据来训练系统。收集重音语音可能更容易,而不关注你所拥有的特定句子。
端到端张量流实现也是可能的,但可能需要太多的数据,因为你需要将说话者的教学事物与重音事物分开(基本上像i-vector那样执行分解)。您可以找到类似作品的说明,例如this和this one。
答案 1 :(得分:3)
您可以使用(这只是一个想法,您需要进行大量实验)一个神经网络,其中包含尽可能多的输出,您可以使用softmax输出层和交叉熵成本函数