MP3输出可将对话分成多个对话?

时间:2019-05-22 15:57:08

标签: google-assistant-sdk

在使用Google的androidthings示例时,我遇到了问题,当我将输出设置为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: # 

请参阅附件日志:Embedded assistant log

是API错误吗? 还是配置有问题?

我正在使用此处的最新代码:androidthings-googleassistant

当输出编码设置为LINEAR16时,该问题不存在。

编辑:

我相信这部分会引起问题:

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

这是确定助手响应结束的一种令人讨厌的方法,它对于PCM效果很好,因为块始终是相同大小而最后一个较小,但是对于MP3,块大小不相等,它们看起来是随机的。

确定响应结束的更好方法吗?

0 个答案:

没有答案