Google Speech API не транскрибирует аудиофайл .flac в приложении для Android - PullRequest
0 голосов
/ 24 ноября 2018
private void processSpeech( String data ) throws IOException
{
    Speech speechService = new Speech
        .Builder( AndroidHttp.newCompatibleTransport(), new AndroidJsonFactory(), null)
        .setSpeechRequestInitializer( new SpeechRequestInitializer( CLOUD_API_KEY ) )
        .build();

    RecognitionConfig recognitionConfig = new RecognitionConfig();
    recognitionConfig.setLanguageCode( "en-US" );

    RecognitionAudio recognitionAudio = new RecognitionAudio();
    recognitionAudio.setContent( data );

    SyncRecognizeRequest request = new SyncRecognizeRequest();
    request.setConfig( recognitionConfig );
    request.setAudio( recognitionAudio );

    SyncRecognizeResponse response = speechService.speech()
            .syncrecognize( request ).execute();

    TextView speechToTextResult = ( TextView ) findViewById( R.id.speech_to_text_result );
    speechToTextResult.setText( "Hello" );

    SpeechRecognitionResult result = response.getResults().get( 0 );

    final String transcript = result.getAlternatives().get( 0 ).getTranscript();

    runOnUiThread( new Runnable()
    {
        @Override
        public void run()
        {
            TextView speechToTextResult = ( TextView ) findViewById( R.id.speech_to_text_result );
            speechToTextResult.setText( "Heyyy" );
        }
    } );

}

Я использовал код Google Speech API, упомянутый на этой странице GitHub .

Приложение не показывает ошибок времени компиляции, но когда я запускаю его и выбираю файл .FLAC для транскрибирования - ничего не происходит.После помещения операторов печати в код, я, кажется, сузил ошибку, которая заключается в следующей строке: -

SyncRecognizeResponse response = speechService.speech().syncrecognize(request).execute();

Я не вижу никакой ошибки, поэтому я не могу отладить это.Logcat также не показывает ничего, кроме "Couldn't load memtrack module".Любые предложения о том, что пошло не так?

...