Espeak_tts.c
2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Megaphone/Music/AudioFile/Megaphone_AudioFile.h"
#include "Megaphone/TTS/Megaphone_TTS.h"
#include "Intl_interface.h"
#include "version_choose.h"
#include "JZsdkLib.h"
#define RECODE_DIR "/root/record/"
T_JZsdkReturnCode Espeak_init()
{
char dict_path[]="/root";//设置资源库路径
char wav_save_path[]=RECODE_DIR;//设置生成音频路径
tts_init(dict_path,wav_save_path);//初始化
printf("espeak_init\n");
//检查record文件夹是否存在
if (JZsdk_check_directory_exists_posix(RECODE_DIR) != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
JZsdk_RunSystemCmd("mkdir /root/record");
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
T_JZsdkReturnCode Espeak_tts(unsigned char *tts_words ,unsigned int len)
{
int tts_speed = TTS_Get_speed();
int tts_tone = TTS_Get_tone();
struct JZTTSParam ttsparam;
struct JZTTSVoice ttsvoice;//音色语言选择
switch(tts_tone){
case 0x41://俄 russian ru
ttsvoice.name="russian";//音色名称
ttsvoice.languages="ru";//使用语言字典
printf("russian\n");
break;
case 0x42://法 french fr-fr
ttsvoice.name="french";//音色名称
ttsvoice.languages="fr-fr";//使用语言字典
printf("french\n");
break;
case 0x43://德 german de
ttsvoice.name="german";//音色名称
ttsvoice.languages="de";//使用语言字典
printf("german\n");
break;
case 0x44://韩 ko
ttsvoice.name="russian";//音色名称
ttsvoice.languages="ru";//使用语言字典
printf("ko\n");
break;
case 0x45://意大利 italian it
ttsvoice.name="italian";//音色名称
ttsvoice.languages="it";//使用语言字典
printf("italian\n");
break;
case 0x46://波兰 polish pl
ttsvoice.name="polish";//音色名称
ttsvoice.languages="pl";//使用语言字典
printf("polish\n");
break;
case 0x47://西班牙 spanish es
ttsvoice.name="spanish";//音色名称
ttsvoice.languages="es";//使用语言字典
printf("spanish\n");
break;
case 0x48://葡萄牙 portugal pt-pt
ttsvoice.name="portugal";//音色名称
ttsvoice.languages="pt-pt";//使用语言字典
printf("portugal\n");
break;
default:
ttsvoice.name="russian";//音色名称
ttsvoice.languages="ru";//使用语言字典
printf("russian\n");
break;
}
tts_setVoice(ttsvoice);//设置音色语言
ttsparam.speed = tts_speed*2.26; //设置语速
ttsparam.pitch=80;//设置语调
ttsparam.wordGap=0;//设置单词间隙
printf("语速%d\n",ttsparam.speed);
tts_setParam(ttsparam);
char tts_filename[]="IntlTTS.wav";
//生成播放的文件
tts_speak(tts_words,tts_filename);
Megaphone_RecordFile_Play("IntlTTS.wav", strlen("IntlTTS.wav"));
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}