识别一个人用java说的信

Ron*_*nie 11 java android speech speech-to-text

我需要将用户说出的字母识别为设备的麦克风.该设备可能是Android驱动的手机.

例如,当用户说' R '时,它应该给我'R'而不是'Are'.

如何在java中完成这个口头字母识别?我正在寻找可以在代码中轻松表达的想法.请建议.

编辑: 基于@David Hilditch的一个建议,我想出了下面的人物地图和他们的声音.

A - ye,a,yay 
B - be, bee, 
C - see, sea, 
D - thee, dee, de
E - eh, ee, 
F - eff, F
G - jee, 
H - edge, hedge, hatch, itch
I - Aye, eye, I
J - je, jay, joy
K - kay, ke, 
L - el, yell, hell
M - am, yam, em
N - yen, en,
O - oh, vow, waw
P - pee, pay, pie
Q - queue,
R - are, err, year
S - yes, ass, S
T - tee, tea, 
U - you, U
V - we, wee,
W - double you, 
X - axe
Y - why
Z - zed, zee, jed
Run Code Online (Sandbox Code Playgroud)

aru*_*aku 6

您可以使用Google的API从语音中获取文本(快速查看http://developer.android.com/reference/android/speech/RecognizerIntent.html).

然后,如果你想推断语言(然后是字母表),你可以使用一个基于n-gram的名为"语言检测器"的开放项目:

http://code.google.com/p/language-detection/

您可以使用"字典巧合"和您可以从文本中获得的其他功能来组合它.


Nej*_*ejc 4

我认为一个不错的选择是遵循 @rmunoz 发布的指南。但如果您不想使用外部活动,那么恐怕您必须自己编写文本识别代码。我也不确定,android 中字母的语音识别有多好。我想背后的机制是受过文字训练的。

我认为这最好用 来完成Neural Networks。首先,你必须收集大量不同人说字母的样本(对于你收到的每封信,让我们举两个人的例子)。您还可以表示该人所说的这封信。假设这样,你从一个人那里得到了 52 个例子,并且有 10 个人参与。现在您已获得 520 个口语字母示例。之后,您必须根据提供的示例构建神经网络。这里有一个非常好的教程: https: //www.coursera.org/course/ml。然后你只需要记住这个神经网络(神经网络中的参数),并用它进行分类即可。该人用麦克风说话,神经网络将新获取的示例与字母进行分类。

只有一个问题。如何表示用户输入的声音,以便可以训练神经网络并随后对该声音进行分类。您必须计算输入声音的一些频谱特征。您可以在http://www.cslu.ogi.edu/tutordemos/nnet_recog/recog.html中阅读相关内容。但我强烈建议您在深入了解下一个链接之前先查看第一个链接(如果您还不了解神经网络)。

其他答案有一个假设,即您已经可以识别诸如“Are”之类的单词。但从我对问题的理解来看,事实并非如此。因此,问题中发布的映射对您没有帮助。