Android Studio-字母的语音识别

时间:2018-08-03 17:25:03

标签: android speech-recognition speech-to-text android-studio-3.0 voice-recognition

我正在为论文开发语音识别应用程序,该应用程序将识别字母。我设法进行语音到文本的重新组合,但我不知道该如何识别仅字母而不是单词。就像我说“ 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");

1 个答案:

答案 0 :(得分:0)

通常,识别A,B,C ...的问题是一个二维的字母,首先是少量的音频数据,其次是某些字母听起来相似的趋势。我们可以在很短的时间内说出“ A”,相对于准确检测所需的音频数据而言,音频数据很少。 “ b,c,d,e,g ...”都以“ iy”声音结尾,因此我们要做的就是将它们分开,一开始只是一小段音频。解码器通常比“ A”更快乐,因为我们倾向于在发音时将其拖出。

在某些识别上下文中,如果可以访问上下文无关的语法来缩小可以识别为有效句子的范围,则可以得到很多控制。在线识别器不会为您提供此选项(据我所知)。独立的识别器(例如Julius)可以使用Backus-Naur形式的上下文无关语法,因此尽管未解决,但您击中单个字母的机会也会大大提高。