Browse Source

可以正常唤醒语音交互,按钮问题待查

corvin 5 years ago
parent
commit
1cc864b670

+ 2 - 0
.gitignore

@@ -1 +1,3 @@
 *.o
+.vscode
+AIVoiceSystem

BIN
resources/16.mp3


BIN
resources/16.wav


BIN
resources/60.mp3


BIN
resources/60.wav


BIN
resources/61.mp3


BIN
resources/61.wav


BIN
resources/62.mp3


BIN
resources/62.wav


BIN
resources/left.mp3


BIN
resources/left.wav


BIN
resources/right.mp3


BIN
resources/right.wav


+ 12 - 14
src/button.c

@@ -1,11 +1,9 @@
-
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdbool.h>
 #include <sys/types.h>
-#include  <wiringPi.h>
-#include <wiringPiSPI.h>
+#include <wiringPi.h>
 
 #include <arpa/inet.h>
 #include <errno.h>
@@ -26,8 +24,8 @@ static pthread_t s_button_threadID;
 
  void  isr_function(void)
  {
-		//DUER_LOGI("isr_function %d\n",digitalRead(BUTTON_GPIO));
-		return ;
+    DUER_LOGI("isr_function %d\n",digitalRead(BUTTON_GPIO));
+    return ;
 }
 
 int  duer_app_is_test_mode(void);
@@ -44,7 +42,8 @@ static void button_polling_thread()
 
 	 while(1)
 	 {
-			 waitForInterrupt(BUTTON_GPIO,100);
+			 waitForInterrupt(BUTTON_GPIO, 200);
+                         //DUER_LOGI("button_polling_thread %d\n",digitalRead(BUTTON_GPIO));
 			 if((now_state=digitalRead(BUTTON_GPIO))!=old_state)
 			 {
 					 	DUER_LOGI("%d %d\n",now_state,old_state);
@@ -57,7 +56,7 @@ static void button_polling_thread()
 										{
 											    duer_recorder_test_start(channel_id);
 											    duer_dcs_dialog_cancel();
-												duer_media_tone_play("./resources/16.mp3");
+												duer_media_tone_play("./resources/16.wav");
 												event_record_start();
 												if(channel_id==1)
 												{
@@ -71,7 +70,7 @@ static void button_polling_thread()
 										else
 										{
 												duer_dcs_dialog_cancel();
-												duer_media_tone_play("./resources/16.mp3");
+												duer_media_tone_play("./resources/16.wav");
 												event_record_start();
 										}
 								}
@@ -91,18 +90,17 @@ int button_init(void)
 {
 		if(wiringPiSetup()!=0)
 		{
-				DUER_LOGE("wiringPiSetup fail\n");
-				return -1;
+		    DUER_LOGE("wiringPiSetup fail\n");
+		    return -1;
 		}
 
 		if(pthread_create(&s_button_threadID, NULL, (void *)button_polling_thread, NULL)!=0)
 		{
-				DUER_LOGE("create button thread fail!\n");
-				return -1;
+		    DUER_LOGE("create button thread fail!\n");
+		    return -1;
 		}
 
-		wiringPiISR(BUTTON_GPIO,INT_EDGE_BOTH,isr_function);
-
+		wiringPiISR(BUTTON_GPIO,INT_EDGE_FALLING,isr_function);
 		return 0;
 }
 

+ 1 - 1
src/duerapp_alert.c

@@ -391,7 +391,7 @@ static void duer_bell_thread(duerapp_alert_node *alert_info)
 static void duer_alert_start(duerapp_alert_node *alert_info)
 {
     if (!s_ring_path) {
-        DUER_LOGE("not found mp3 path!");
+        DUER_LOGE("not found wav path!");
         return;
     }
     if (s_is_bell) {

+ 8 - 2
src/duerapp_media.c

@@ -264,20 +264,26 @@ void duer_media_speak_play(const char *url)
 
 void duer_media_tone_play(const char *path,int wait_tm) {
 	
-      GstElement *decoder =NULL;
+    GstElement *decoder =NULL;
     GstElement *pipeline = gst_pipeline_new("audio-player");
     GstElement *source = gst_element_factory_make("filesrc", "file-source");
     if(strstr(path,".wav")!=NULL){
         decoder = gst_element_factory_make("wavparse", "wav-parser");
+	DUER_LOGE("duer_media_tone_play: wavparse !!!");
     }else{
         decoder = gst_element_factory_make("mad", "mad-decoder");
+	DUER_LOGE("duer_media_tone_play: mad !!!");
     }
     GstElement *sink = gst_element_factory_make("autoaudiosink", "audio-output");
+    if(decoder == NULL )
+    {
+	    DUER_LOGE("duer_media_tone_play: decoder NULL !!!");
+    }
     if (!(pipeline && source && decoder && sink)) {
         DUER_LOGE("create alert element failed!");
         return;
     }
-	s_tone_state = MEDIA_TONE_PLAY;
+    s_tone_state = MEDIA_TONE_PLAY;
     g_object_set(G_OBJECT(source), "location", path, NULL);
 
     GstBus *bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline));

+ 4 - 4
src/duerapp_recorder.c

@@ -65,8 +65,8 @@ static bool s_is_suspend = false;
 static bool s_is_baidu_rec_start = false;
 static pthread_t s_rec_send_threadID;
 static char * s_kws_model_filename = NULL;
-const char *s_tone_url[3] = {"./resources/60.mp3","./resources/61.mp3","./resources/62.mp3"};
-	
+const char *s_tone_url[3] = {"./resources/60.wav","./resources/61.wav","./resources/62.wav"};
+
 extern 	void event_record_start();
 
 int duer_set_kws_model_file(char *filename)
@@ -207,9 +207,9 @@ int  duer_recorder_test_start(int channel)
 	if(duer_app_is_test_mode()){
 		
 		if(g_recorder_channel==1){
-			duer_media_tone_play("./resources/left.mp3",20000);
+			duer_media_tone_play("./resources/left.wav",20000);
 		}else if(g_recorder_channel==2){
-			   duer_media_tone_play("./resources/right.mp3",20000); 
+			   duer_media_tone_play("./resources/right.wav",20000); 
 		}
 		duer_store_voice_end();
 		duer_store_voice_start(g_recorder_channel);