我正在为论文开发语音识别应用程序,该应用程序将识别字母。我设法进行语音到文本的重新组合,但我不知道该如何识别仅字母而不是单词。就像我说“ A”时,应用程序应该显示字母A的图片。您能帮我吗? 以下是在youtube的帮助下我的语音识别应用程序的示例代码,我通过将字符串“ apple”与语音到文本识别进行比较来实现。
final SpeechRecognizer mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);
final Intent mSpeechRecognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
mSpeechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE,
Locale.getDefault());
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
textview.setText(bundle.getString("letterA"));
if (textview.getText().toString().equalsIgnoreCase("apple")){
q="apple";
Glide.with(Voice_view.this).load(R.drawable.apple).into(imageView);
letter.setText("A");
答案 0 :(得分:0)
通常,识别A,B,C ...的问题是一个二维的字母,首先是少量的音频数据,其次是某些字母听起来相似的趋势。我们可以在很短的时间内说出“ A”,相对于准确检测所需的音频数据而言,音频数据很少。 “ b,c,d,e,g ...”都以“ iy”声音结尾,因此我们要做的就是将它们分开,一开始只是一小段音频。解码器通常比“ A”更快乐,因为我们倾向于在发音时将其拖出。
在某些识别上下文中,如果可以访问上下文无关的语法来缩小可以识别为有效句子的范围,则可以得到很多控制。在线识别器不会为您提供此选项(据我所知)。独立的识别器(例如Julius)可以使用Backus-Naur形式的上下文无关语法,因此尽管未解决,但您击中单个字母的机会也会大大提高。