Получить транскрипцию распознанных данных с помощью SpeechRecognizer - PullRequest
0 голосов
/ 11 мая 2019

Я использую SpeechRecognizer для реализации функции «речь в текст», и результатом ее работы являются текстовые данные:

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);                
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.US.toString());
intent.putExtra("android.speech.extra.EXTRA_ADDITIONAL_LANGUAGES", new String[]{});
SpeechRecognizer recognizer = SpeechRecognizer.createSpeechRecognizer(getApplicationContext());
recognizer.setRecognitionListener(new RecognitionListener() {
  @Override
  public void onReadyForSpeech(Bundle params) {}

  @Override
  public void onBeginningOfSpeech() {}  

  @Override
  public void onRmsChanged(float rmsdB) {}

  @Override
  public void onBufferReceived(byte[] buffer) {}

  @Override
  public void onEndOfSpeech() {}

  @Override
  public void onError(int error) {}

  @Override
  public void onPartialResults(Bundle partialResults) {}

  @Override
  public void onEvent(int eventType, Bundle params) {}

  @Override
  public void onResults(Bundle results) {
    String result = null;
    ArrayList<String> arrOfResults = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
    String command = arrOfResults.get(0);
  }
});
recognizer.startListening(intent);  

Можно ли получить транскрипцию распознанной речи вместо текста, используяэтот метод?
Например, как это было реализовано в Google Translate:

Или, если необходимо, использовать другой подход.

Как я могу это сделать?Заранее спасибо.С уважением ...

1 Ответ

1 голос
/ 13 мая 2019

SpeechReocgnizer API предлагает только «текст» (нормальный орфографический текст, я полагаю) и, при желании, доверительные оценки, см .: https://developer.android.com/reference/android/speech/RecognitionListener.html#onResults(android.os.Bundle)

...