Выход MP3 разбивает разговор на несколько разговоров? - PullRequest
0 голосов
/ 22 мая 2019

У меня проблемы с использованием примера androidthings из Google, когда я устанавливаю вывод в MP3, большинство ответов работают хорошо и как и ожидалось, но иногда, например, когда я говорю «Скажи что-нибудь короткое», «Скажи что-нибудь длинное» API помощника ведет себя странно, я получаю слишком много ответов и "разговоров?"

В журнале написано, что он заканчивает разговор много раз, это событие меня уволили много раз ...

2019-05-22 17:28:19.323 17562-17709/com.example.androidthings.assistant 
D/AudioTrack: stop() called with 280 frames delivered
2019-05-22 17:28:19.323 17562-17709/com.example.androidthings.assistant 
I/AudioTrack: Skip ramp
2019-05-22 17:28:19.333 17562-17562/com.example.androidthings.assistant 
I/AssistantActivity: assistant conversation finished
2019-05-22 17:28:19.335 17562-17709/com.example.androidthings.assistant 
D/EmbeddedAssistant: Received response: # 

См. Прикрепленный журнал: Встроенный помощник журнала

Является ли ошибка API? Или что-то не так с конфигурацией?

Я использую последний код здесь: androidthings-googleassistant

Проблема не существует, если выходная кодировка установлена ​​в LINEAR16.

EDIT:

Я считаю, что эта часть вызывает проблемы:

if (value.getAudioOut() != null) {
   if (mAudioOutSize <= value.getAudioOut().getSerializedSize()){
   mAudioOutSize = value.getAudioOut().getSerializedSize();
   } 
   else {
   mAudioOutSize = 0;
   onCompleted();
   }
}

Это был какой-то неприятный способ определения конца ответа помощника, он хорошо работает для PCM, потому что фрагменты всегда были одинакового размера, а последние были меньше, но для MP3 размеры фрагментов не равны, они выглядят случайными.

Есть ли лучший способ определить конец ответа?

...