void uapi_UI_start_asr(void)
-{
- if(bk_websocket_tts_tick!=0)
+{
+
+ if(get_AIStreamend()==1)
{
- // uapi_tts_paly_stop();
- tts_server_deinit();
- send_msg_data_into_Ai_msg_queue((uint8_t *)"tts_recv_buf",13,201);
+ AIStreamFlush();
tts_break=1;
- tts_reconnect=1;
- while (tts_break)
+
+ if(bk_websocket_tts_tick!=0)
{
- LOS_Msleep(10);
+ send_msg_data_into_Ai_msg_queue((uint8_t *)"tts_recv_buf",13,201);
+ tts_server_deinit();
+ tts_reconnect=1;
}
- LOS_Msleep(50);
+
}
+
+
asr_need_stop=0;
asr_server_init();
void uapi_start_tts_single_txt(char *buf)
{
+
+
char *jsonString = (char *)malloc(strlen(buf)+300);// [512] ={0};
sprintf(jsonString, " { \"header\": { \
{
if(bk_websocket_tts_tick==0)
{
+ set_AIStreamend(0);
bk_websocket_tts_tick = (uint32_t)osKernelGetTickCount();
}
// tts_cache_file((uint8_t *)tts_recv_buf,len);——
static std::shared_ptr<OHOS::Audio::AudioCapturer> g_audioCap;
+uint8_t RunVoiceCallVolteAI_is_ready=0;
static int32_t RunVoiceCallVolteAI(VoiceCallVolteContext *context)
{
// g_stream_out_downink->AttachFrontend(asiDownlinkChannelId);
+ RunVoiceCallVolteAI_is_ready=1;
+
MediaMutexLock(context->mutex);
while (!context->isVoiceCallVolteStopped) {
}
MediaMutexUnLock(context->mutex);
+ RunVoiceCallVolteAI_is_ready=0;
+
ret = g_stream_out_downink->Stop();
if (ret != 0) {
errcode_t ret=uapi_create_osThread_custom(&taskcfg);
}
+int32_t AIStreamFlush(void)
+{
+ if(RunVoiceCallVolteAI_is_ready && g_stream_out_downink)
+ {
+ g_stream_out_downink-> Pause();
+
+ g_stream_out_downink->Flush();
+
+ g_stream_out_downink->Play();
+ }
+ return 0;
+}
+static uint8_t AIStreampaly=0;
+
+uint8_t get_AIStreamend(void)
+{
+ return AIStreampaly;
+}
+
+void set_AIStreamend(uint8_t data)
+{
+ AIStreampaly=data;
+}
int32_t AIStreamWrite(uint8_t *buf, uint32_t size)
if(buf==NULL && size==1)
{
MEDIA_ERR_LOG("AIStreamWrite end");
+ AIStreampaly=2;
uapi_set_tts_break(0);
return -1;
}
}
// 原有流写入逻辑
- if (g_stream_out_downink)
+ if (g_stream_out_downink && RunVoiceCallVolteAI_is_ready)
{
StreamWrite_retry:
+ if(uapi_get_tts_break())
+ {
+ return -1;
+ }
+
+ AIStreampaly=1;
+
uint64_t writeLen = 0;
AudioRendererConfig renderConfig;
if (g_stream_out_downink)
{
ret = g_stream_out_downink->StreamWrite(buf, size, writeLen, renderConfig);
- MEDIA_ERR_LOG("StreamWrite writeLen %d\r\n", writeLen);
+ if(writeLen!=0)
+ {
+ MEDIA_ERR_LOG("StreamWrite writeLen %d\r\n", writeLen);
+ }
}
else
{
if (ret < 0)
{
- MEDIA_ERR_LOG("StreamWrite failed");
+ // MEDIA_ERR_LOG("StreamWrite failed");
goto StreamWrite_retry;
}
}