Watson SpeechToText аварийное приложение для Android при вызове MicrophoneHelper - PullRequest
0 голосов
/ 25 октября 2018

Не могу начать запись звука.Я получаю следующую ошибку:

E/AudioRecord: start() status -38
E/AndroidRuntime: FATAL EXCEPTION: Thread-7713
    Process: com.sienaapp.sienaapp, PID: 5005
    java.lang.IllegalArgumentException: capacity < 0: -6
        at java.nio.ByteBuffer.allocate(ByteBuffer.java:54)
        at com.ibm.watson.developer_cloud.android.library.audio.MicrophoneCaptureThread.run(MicrophoneCaptureThread.java:91)

Это код, с которого я звоню в MicrophoneHelper

 @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.fab:
                try {
                    mMicrophoneStream = mMicrophoneHelper.getInputStream(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }

                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        mSpeechToText.recognizeUsingWebSocket(mMicrophoneStream,
                                getRecognizeOptions(),
                                baseRecognizeListener);
                    }
                }).start();
                break;
        }
    }

Настройки SpeechToText Recognize

private RecognizeOptions getRecognizeOptions() {
        return new RecognizeOptions.Builder()
                .model("pt-BR_BroadbandModel")
                .contentType(ContentType.OPUS.toString())
                .interimResults(true)
                .timestamps(true)
                .inactivityTimeout(-1)
                .smartFormatting(true)
                .model(SpeechModel.PT_BR_BROADBANDMODEL.getName())
                .build();
    }

Часть build.gradle файла

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.test.testapp"
        minSdkVersion 22
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

Помня, что minSdkVersion соответствует запросу (больше, чем уровень API 19), а права доступа RECORD_AUDIO и WRITE_EXTERNAL_STORAGE были правильно запрошены и реализованы для уровня API> = 23.

Может ли кто-нибудь помочь мне решить эту проблему?Ответы, которые я исследовал, мне не сильно помогли.благодарный

...