更新kws算法
authorp15692025051 <846603105@qq.com>
Mon, 25 Aug 2025 01:43:23 +0000 (09:43 +0800)
committerp15692025051 <846603105@qq.com>
Mon, 25 Aug 2025 01:43:23 +0000 (09:43 +0800)
2.code/1.sdk/apps/BK_app/BK_drive/bk_audio.c
2.code/1.sdk/apps/BK_app/bk_app.c
2.code/1.sdk/apps/BK_app/bk_app.h

index b73849b..e824f6c 100644 (file)
@@ -349,7 +349,8 @@ int audio_link_demo_post_mic(char *data, int len)
     volatile u32 wlen;
     if(len == 0)
         return 0;
-    #if BK_VAD_KWS
+    #if(USR_KWS_ALG != 0)
+    
     bk_ALG_send_smg(ALG_VAD_EVENT,data,len);
     #endif
     //log_info("%s:!!!!!!",__FUNCTION__);
@@ -470,36 +471,18 @@ int read_iis_play_data(char *data, int len)
 }
 
 
-extern u8 esco_flag;//=1开启了通话,=0关闭了通话
+
 void open_bt_audio(void)//打开蓝牙通话
 {
-    BT_state=1;
-    printf("open_bt_audio");
     __set_bt_esco_by_watch(1);
     user_emitter_cmd_prepare(USER_CTRL_CONN_SCO,0,NULL);
     user_emitter_cmd_prepare(USER_CTRL_HFP_CALL_LAST_NO,0,NULL);
     gpio_direction_output(TCFG_AUDIO_DAC_PA_PORT, 0); //
-    int count =100;
-    while(count --)//等待打开完成
-    {
-
-        if(esco_flag == 1  )
-            break;
-        os_time_dly(1);
-    }
 }
 void close_bt_audio(void)
 {
     printf("close_bt_audio");
     user_emitter_cmd_prepare(USER_CTRL_HFP_CALL_HANGUP,0,NULL);
-    int count =100;
-    while(count --)//等待打开完成
-    {
-
-        if(esco_flag == 0  )
-            break;
-        os_time_dly(1);
-    }
 }
 
 //extern void uart_demo();
index 6f256e2..27e2409 100644 (file)
 #include "debug.h"
 #include "key_event_deal.h"
 static char AI_start_flag = 0;
-#if BK_VAD_KWS
+#if(USR_KWS_ALG == KWS_BK)
 #include "imsl_vad.h"
 #include "imsl_kws.h"
 #endif
+#if(USR_KWS_ALG == KWS_HZ)
+#include "voice_config.h"
+#include "asr_score.h" 
+#include "voice_app.h"
+#endif
 #include "bk_app.h"
 #include "BK_versions.h"
-void BT_State_Change_cb(void);
 //获取运行状态,返回0代表在休眠,返回1代表在运行
 char get_ai_state(void)
 {
@@ -75,7 +79,7 @@ void AI_VC_1S_event(void)
     
     int cat1_io = gpio_read(IO_PORTA_10) ;
     printf("AI_VC_1S_cb:%d",cat1_io);
-    #if BK_VAD_KWS 
+    #if(USR_KWS_ALG != 0) 
     if(cat1_io == 0 && AI_start_flag == 1)//cat1退出唤醒,进入休眠
     {
         if(AI_VC_sleep_count<=0)
@@ -310,6 +314,15 @@ void bk_ALG_task(void *p)
                 uart_send_kws();
             }
             #endif
+            #if(USR_KWS_ALG == KWS_HZ)
+            //printf("wanson_algorithm_recog:len :%d",len);
+            // if(wanson_algorithm_recog(data,len)==1)
+            // {
+            //     printf("华镇唤醒了!!!!!!!!!!!!!!");
+            //     printf("华镇唤醒了!!!!!!!!!!!!!!");
+            //     printf("华镇唤醒了!!!!!!!!!!!!!!");
+            // }
+            #endif
             break;
             
         default:
@@ -373,7 +386,7 @@ void bk_app_init(void)
     // while(1)
     // ;
     //启用VAD时初始化
-    #if BK_VAD_KWS
+    #if(USR_KWS_ALG == KWS_BK)
     struct VadConfig conf;
     conf.sil_threshold = 63;
     conf.energy_threshold = 10000;
@@ -397,7 +410,13 @@ void bk_app_init(void)
     // strcpy(auth_info.dmp_token, "");
     // auth_kws(&auth_info);
     //err = os_task_create(bk_ALG_task, NULL, 31, 1024*8, 255, "bk_ALG_task");
-    err = task_create(bk_ALG_task, NULL, "bk_ALG_task");
+    
+    #endif
+    #if(USR_KWS_ALG == KWS_HZ)
+    wanson_kws_algorithm_init();
+    #endif
+    #if(USR_KWS_ALG != 0)
+        err = task_create(bk_ALG_task, NULL, "bk_ALG_task");
     #endif
     err = os_task_create(bk_app_task, NULL, 31, 512, 255, "bk_app_task");
     //int err = task_create(bk_app_task, NULL, "bk_app_task");
index 9b97e34..c0d29a2 100644 (file)
@@ -1,6 +1,9 @@
 #ifndef    __BK_APP_H__
 #define    __BK_APP_H__
-#define BK_VAD_KWS 0
+#define  KWS_NO 0
+#define KWS_HZ 1 //华镇算法
+#define KWS_BK 2 //北科算法
+#define USR_KWS_ALG KWS_NO
 typedef enum 
 {
     AI_KEY_PRESS = 0,