作者 ookk303

更新

1 # 编译链的配置 1 # 编译链的配置
2 2
3 #1、编译链与设备类型的选择 3 #1、编译链与设备类型的选择
4 -set(DEVICE_NAME JZ_H1E) 4 +set(DEVICE_NAME JZ_H150S)
5 #上一行为禁止修改行 5 #上一行为禁止修改行
6 6
7 message("**************************JZSDK构建编译开始***************************\n") 7 message("**************************JZSDK构建编译开始***************************\n")
@@ -7,13 +7,13 @@ @@ -7,13 +7,13 @@
7 #define VERSION_CHOOSE_H 7 #define VERSION_CHOOSE_H
8 #include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceCode.h" 8 #include "JZsdk_Base/JZsdk_Code/JZsdk_DeviceCode.h"
9 //1~10行 除了D可以修改版本选择 禁止动任何东西 9 //1~10行 除了D可以修改版本选择 禁止动任何东西
10 -#define DEVICE_VERSION JZ_H1E 10 +#define DEVICE_VERSION JZ_H150S
11 11
12 //禁止修改行 选择是串口程序 还是 psdk程序 12 //禁止修改行 选择是串口程序 还是 psdk程序
13 #define APP_VERSION APP_PSDK 13 #define APP_VERSION APP_PSDK
14 14
15 //禁止修改行 板子型号 15 //禁止修改行 板子型号
16 -#define PLATFORM_VERSION PLATFORM_V3S 16 +#define PLATFORM_VERSION PLATFORM_H3
17 17
18 //禁止修改行 串口连接程序的软件版本号 18 //禁止修改行 串口连接程序的软件版本号
19 #define MAJOR_VERSION 0x01 19 #define MAJOR_VERSION 0x01
@@ -123,7 +123,7 @@ static T_JZsdkReturnCode TTS_Synthesis(const char* src_text, const char* params) @@ -123,7 +123,7 @@ static T_JZsdkReturnCode TTS_Synthesis(const char* src_text, const char* params)
123 * 获取音源 123 * 获取音源
124 * 124 *
125 * ********/ 125 * ********/
126 -static T_JZsdkReturnCode TTS_GetSoundSource(int tone,unsigned char *name_tts, unsigned char *name_path) 126 +static T_JZsdkReturnCode TTS_GetSoundSource(int tone,unsigned char *name_tts, unsigned char *name_path, unsigned char *rule_path)
127 { 127 {
128 128
129 /* 129 /*
@@ -182,6 +182,25 @@ static T_JZsdkReturnCode TTS_GetSoundSource(int tone,unsigned char *name_tts, un @@ -182,6 +182,25 @@ static T_JZsdkReturnCode TTS_GetSoundSource(int tone,unsigned char *name_tts, un
182 snprintf(name_path,64, "fo|/root/tts/xiaoyan.jet"); 182 snprintf(name_path,64, "fo|/root/tts/xiaoyan.jet");
183 break; 183 break;
184 } 184 }
  185 +
  186 + //写入发音规则
  187 + memset(rule_path,0,128);
  188 + snprintf(rule_path,128,"/root/tts/common.jet");
  189 +
  190 + //不是英文就直接返回
  191 + if ( tone != 0x11 && tone != 0x12)
  192 + {
  193 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
  194 + }
  195 +
  196 + //由于有讯飞更新,让英文有了新的发音规则,所以要检测本地是否有新的发音规则
  197 + if(JZsdk_check_file_exists("/root/tts/common_en.jet") == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
  198 + {
  199 + memset(rule_path,0,128);
  200 + snprintf(rule_path,128,"/root/tts/common_en.jet");
  201 + }
  202 +
  203 + return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
185 } 204 }
186 205
187 static T_JZsdkReturnCode TTS_FILE_GenerateAndPlay(struct t_Megaphone_tts_param *Megaphone_tts_param) 206 static T_JZsdkReturnCode TTS_FILE_GenerateAndPlay(struct t_Megaphone_tts_param *Megaphone_tts_param)
@@ -196,15 +215,18 @@ static T_JZsdkReturnCode TTS_FILE_GenerateAndPlay(struct t_Megaphone_tts_param * @@ -196,15 +215,18 @@ static T_JZsdkReturnCode TTS_FILE_GenerateAndPlay(struct t_Megaphone_tts_param *
196 int ret = MSP_SUCCESS; 215 int ret = MSP_SUCCESS;
197 char name_tts[16]; 216 char name_tts[16];
198 char name_path[64]; 217 char name_path[64];
  218 +
199 char session_begin_params[512]; 219 char session_begin_params[512];
200 char tts_add_params[512]; 220 char tts_add_params[512];
  221 + char rule[128];
201 222
202 - //获取音源  
203 - TTS_GetSoundSource(tone, name_tts, name_path); 223 + //获取音源,以及规则
  224 + TTS_GetSoundSource(tone, name_tts, name_path, rule);
204 225
  226 + //配置合成参数
205 snprintf(session_begin_params,512, 227 snprintf(session_begin_params,512,
206 - "engine_type = local,voice_name=%s, text_encoding = UTF8, tts_res_path = %s;fo|/root/tts/common.jet, sample_rate = 16000, speed = %d, volume = %d, pitch = 50, rdn = 2"  
207 - ,name_tts,name_path,speed,volume); 228 + "engine_type = local,voice_name=%s, text_encoding = UTF8, tts_res_path = %s;fo|%s, sample_rate = 16000, speed = %d, volume = %d, pitch = 50, rdn = 2"
  229 + ,name_tts , name_path, rule, speed, volume);
208 230
209 printf("session_begin_params=%s\n",session_begin_params); 231 printf("session_begin_params=%s\n",session_begin_params);
210 printf("argv=%s\n",argv); 232 printf("argv=%s\n",argv);
@@ -569,6 +569,16 @@ static T_DjiReturnCode StartPlay(void) @@ -569,6 +569,16 @@ static T_DjiReturnCode StartPlay(void)
569 } 569 }
570 570
571 USER_LOG_INFO("Start widget speaker play"); 571 USER_LOG_INFO("Start widget speaker play");
  572 +
  573 + //检查当前是否正在播放中
  574 + if (s_speakerState.state == DJI_WIDGET_SPEAKER_STATE_PLAYING)
  575 + {
  576 + //关闭上次播放
  577 + StopPlay();
  578 +
  579 + delayMs(100);
  580 + }
  581 +
572 SetSpeakerState(DJI_WIDGET_SPEAKER_STATE_PLAYING); 582 SetSpeakerState(DJI_WIDGET_SPEAKER_STATE_PLAYING);
573 583
574 //播放 584 //播放
1 # cmake 最低版本要求 第三行名字不能动 1 # cmake 最低版本要求 第三行名字不能动
2 cmake_minimum_required(VERSION 2.8) 2 cmake_minimum_required(VERSION 2.8)
3 -project(JZ_H1E) 3 +project(JZ_H150S)
4 4
5 #set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++") 5 #set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++")
6 #"-pthread":指定在编译时链接POSIX线程库,以支持多线程程序。 6 #"-pthread":指定在编译时链接POSIX线程库,以支持多线程程序。