int main(int argc, char* argv[]) { ///APPID请勿随意改动 const char* login_configs = " appid = 55dbb5fb, work_dir = . "; const char* text = "讯飞语音,沟通无限。"; const char* filename = "text_to_speech_test_withspeechmark.pcm"; const char* param = "aue = speex-wb;3, vcn=xiaoyan, spd = 5, vol = 5, tte = utf8, smk=3";//带参数smk=3,获取详细的语音标注,json格式,请自行解析 int ret = 0; char key = 0; //用户登录 ret = MSPLogin(NULL, NULL, login_configs); if ( ret != MSP_SUCCESS ) { printf("MSPLogin failed , Error code %d.\n",ret); } //音频合成 ret = text_to_speech(text,filename,param); if ( ret != MSP_SUCCESS ) { printf("text_to_speech: failed , Error code %d.\n",ret); } //退出登录 MSPLogout(); return 0; }
int main(int argc, char* argv[]) { ///APPID请勿随意改动 const char* login_configs = " appid = 5392db98, work_dir = . "; const char* text = "10086"; const char* filename = "text_to_speech_withnumber_test.pcm"; const char* param = "aue = speex-wb;3, vcn=xiaoyan, spd = 50, vol = 50, tte = utf8, rdn = 2"; int ret = 0; char key = 0; //用户登录 ret = MSPLogin(NULL, NULL, login_configs); if ( ret != MSP_SUCCESS ) { printf("MSPLogin failed , Error code %d.\n",ret); } //音频合成 ret = text_to_speech(text,filename,param); if ( ret != MSP_SUCCESS ) { printf("text_to_speech: failed , Error code %d.\n",ret); } //退出登录 MSPLogout(); return 0; }
int main(int argc, char* argv[]) { ///APPID请勿随意改动 const char* login_configs = " appid = 55dbb5fb, work_dir = . "; const char* text = "10086"; const char* filename = "text_to_speech_withnumber_test.pcm"; const char* param = "aue = speex-wb,auf=audio/L16;rate=16000, vcn=xiaoyan, spd = 5, vol = 5, tte = utf8, rdn = 2";//8k音频合成参数:aue=speex,auf=audio/L16;rate=8000,其他参数意义参考参数列表 int ret = 0; char key = 0; //用户登录 ret = MSPLogin(NULL, NULL, login_configs); if ( ret != MSP_SUCCESS ) { printf("MSPLogin failed , Error code %d.\n",ret); } //音频合成 ret = text_to_speech(text,filename,param); if ( ret != MSP_SUCCESS ) { printf("text_to_speech: failed , Error code %d.\n",ret); } //退出登录 MSPLogout(); return 0; }
int _tmain(int argc, _TCHAR* argv[]) { ///APPID请勿随意改动 const char* m_configs = "appid=52d8f781"; const char* text1 = "讯飞语音,沟通无限。"; const char* filename1 = "text_to_speech_test_1.wav"; const char* param1 = "ssm=1,auf=audio/L16;rate=16000,vcn=xiaoyan"; const char* text2 = "欢迎使用,安徽科大讯飞信息科技股份有限公司,云语音合成。"; const char* filename2 = "text_to_speech_test_2.wav"; const char* param2 = "ssm=1,auf=audio/L16;rate=16000,vcn=xiaoyu"; int ret = 0; char key = 0; //引擎初始化 ret = QTTSInit( m_configs); if ( ret != MSP_SUCCESS ) { printf("QTTSInit: failed, Error code %d.\n", ret); key = _getch(); return ret; } //合成文本 ret = text_to_speech(text1,filename1,param1); if ( ret != MSP_SUCCESS ) { printf("text_to_speech: failed , Error code %d.\n",ret); } ret = text_to_speech(text2,filename2,param2); if ( ret != MSP_SUCCESS ) { printf("text_to_speech: failed , Error code %d.\n",ret); } //引擎关闭 ret = QTTSFini(); if ( ret != MSP_SUCCESS ) { printf("QTTSFini: failed , Error code %d.\n",ret); } else { printf("Complete!\nPress any key to exit.\n"); } key = _getch(); return 0; }
int main(int argc, char* argv[]) { if(argc != 3) { printf("usage: ./tts_sample \"hello world\" hello.wav\n"); return -1; } int ret = MSP_SUCCESS; const char* login_params = "appid = 568a1829, work_dir = .";//登录参数,appid与msc库绑定,请勿随意改动 /* * rdn: 合成音频数字发音方式 * volume: 合成音频的音量 * pitch: 合成音频的音调 * speed: 合成音频对应的语速 * voice_name: 合成发音人 * sample_rate: 合成音频采样率 * text_encoding: 合成文本编码格式 * * 详细参数说明请参阅《iFlytek MSC Reference Manual》 */ const char* session_begin_params = "voice_name = xiaoyan, text_encoding = UTF8, sample_rate = 16000, speed = 30, volume = 50, pitch = 50, rdn = 2"; const char* filename = argv[2]; //合成的语音文件名称 const char* text = argv[1]; //合成文本 /* 用户登录 */ ret = MSPLogin(NULL, NULL, login_params);//第一个参数是用户名,第二个参数是密码,第三个参数是登录参数,用户名和密码可在http://open.voicecloud.cn注册获取 if (MSP_SUCCESS != ret) { printf("MSPLogin failed, error code: %d.\n", ret); goto exit ;//登录失败,退出登录 } printf("\n###########################################################################\n"); printf("## 语音合成(Text To Speech,TTS)技术能够自动将任意文字实时转换为连续的 ##\n"); printf("## 自然语音,是一种能够在任何时间、任何地点,向任何人提供语音信息服务的 ##\n"); printf("## 高效便捷手段,非常符合信息时代海量数据、动态更新和个性化查询的需求。 ##\n"); printf("###########################################################################\n\n"); /* 文本合成 */ printf("开始合成 ...\n"); ret = text_to_speech(text, filename, session_begin_params); if (MSP_SUCCESS != ret) { printf("text_to_speech failed, error code: %d.\n", ret); } printf("合成完毕\n"); exit: printf("按任意键退出 ...\n"); getchar(); MSPLogout(); //退出登录 return 0; }
void play(const char *string,const char *filename) { const char* login_configs = " appid = 55801297, work_dir = . "; const char* text = "科大讯飞作为中国最大的智能语音技术提供商,在智能语音技术领域有着长期的研究积累,并在中文语音合成、语音识别、口语评测等多项技术上拥有国际领先的成果。"; const char* param = "vcn=xiaoyan,aue = speex-wb,auf=audio/L16;rate=16000,spd = 5,vol = 5,tte = utf8";//8k音频合成参数:aue=speex,auf=audio/L16;rate=8000,其他参数意义参考参数列表 int ret = 0; char key = 0; ret = MSPLogin(NULL, NULL, login_configs); if ( ret != MSP_SUCCESS ) { printf("MSPLogin failed , Error code %d.\n",ret); } ret = text_to_speech(string,filename,param); if ( ret != MSP_SUCCESS ) { printf("text_to_speech: failed , Error code %d.\n",ret); } MSPLogout(); }
int main(int argc, char *argv[]) { byte *buf = NULL; int len = 0; int fn; byte ret = 0; #ifdef DEBUG fp = fopen("/opt/kazoo/xf.log", "a+"); #endif while ((len = read_cmd(&buf)) > 0){ fn = buf[0]; debug("cmd %d", fn); if (fn == CMD_TTS) { if ((ret = text_to_speech(buf+1, len-1)) != 0) { write_cmd(&ret, sizeof(ret)); } } else if (fn == CMD_SET_LOGIN_CONFIG) { ret = set_login_config(buf+1, len-1); write_cmd(&ret, sizeof(ret)); } else if (fn == CMD_SET_TTS_PARAMS) { ret = set_tts_params(buf+1, len-1); write_cmd(&ret, sizeof(ret)); } else { debug("unknown cmd %d", fn); exit(EXIT_FAILURE); } free(buf); } debug("exiting"); #ifdef DEBUG fclose(fp); #endif }
int text2wav(char* text) { int ret = MSP_SUCCESS; const char* login_params = "appid = 573b34ce, work_dir = .";//登录参数,appid与msc库绑定,请勿随意改动 /* * rdn: 合成音频数字发音方式 * volume: 合成音频的音量 * pitch: 合成音频的音调 * speed: 合成音频对应的语速 * voice_name: 合成发音人 * sample_rate: 合成音频采样率 * text_encoding: 合成文本编码格式 * * 详细参数说明请参阅《iFlytek MSC Reference Manual》 */ const char* session_begin_params = "voice_name = xiaoyan, text_encoding = UTF8, sample_rate = 16000, speed = 50, volume = 50, pitch = 50, rdn = 0"; const char* filename = "tts.wav"; //合成的语音文件名称 /* 用户登录 */ ret = MSPLogin(NULL, NULL, login_params);//第一个参数是用户名,第二个参数是密码,第三个参数是登录参数,用户名和密码可在http://open.voicecloud.cn注册获取 if (MSP_SUCCESS != ret) { printf("MSPLogin failed, error code: %d.\n", ret); return 1; } /* 文本合成 */ printf("开始合成 ...\n"); ret = text_to_speech(text, filename, session_begin_params); if (MSP_SUCCESS != ret) { printf("text_to_speech failed, error code: %d.\n", ret); } printf("合成完毕\n"); MSPLogout(); //退出登录 return 0; }
/* 回调函数 */ void chatterCallback(const cob_perception_msgs::DetectionArray &face_position_msg_out) { int ret = MSP_SUCCESS; const char* login_params = "appid = 56f0f034, work_dir = .";//登录参数,appid与msc库绑定,请勿随意改动 const char* session_begin_params = "voice_name = xiaoyan, text_encoding = UTF8, sample_rate = 16000, speed = 50, volume = 50, pitch = 50, rdn = 2"; const char* filename = "/home/exbot/catkin/src/audio_common/sound_play/sounds/name.wav"; //合成的语音文件名称+路径 ros::NodeHandle nh; ros::Publisher chatter_pub = nh.advertise<std_msgs::String>("voice",10); //ros::Rate loop_rate(0.2);//循环频率为0.2Hz for (int i=0; i<(int)face_position_msg_out.detections.size(); i++) { ROS_INFO("I see: %s",face_position_msg_out.detections[i].label.c_str()); //读取文本转语音 char* text = new char[500]; FILE* fp=fopen("/home/exbot/catkin/src/word/src/1.txt","r"); text=fgets(text,500,fp); fclose(fp); fp=NULL; /* 用户登录 */ ret = MSPLogin(NULL, NULL, login_params);//第一个参数是用户名,第二个参数是密码,第三个参数是登录参数,用户名和密码可在http://open.voicecloud.cn注册获取 ret = text_to_speech(text, filename, session_begin_params); std_msgs::String msg; std::stringstream ss; ss<<"hello!"; msg.data = ss.str(); ROS_INFO("%s",msg.data.c_str());//输出与printf和cout等同 chatter_pub.publish(msg);//向话题chatter发布消息 //loop_rate.sleep(); ros::Duration(5.0).sleep(); MSPLogout(); //退出登录 } }
int main(int argc, char* argv[]) { int ret = MSP_SUCCESS; //const char* login_params = "appid = 574e69b2, work_dir = .";//登录参数,appid与msc库绑定,请勿随意改动 /* * rdn: 合成音频数字发音方式 * volume: 合成音频的音量 * pitch: 合成音频的音调 * speed: 合成音频对应的语速 * voice_name: 合成发音人 * sample_rate: 合成音频采样率 * text_encoding: 合成文本编码格式 * * 详细参数说明请参阅《iFlytek MSC Reference Manual》 */ // const char* session_begin_params = "voice_name = xiaoyan, text_encoding = UTF8, sample_rate = 16000, speed = 50, volume = 50, pitch = 50, rdn = 2"; // const char* filename = "tts_sample.wav"; //合成的语音文件名称 // const char* text = "亲爱的用户,您好,这是一个语音合成示例,感谢您对科大讯飞语音技术的支持!科大讯飞是亚太地区最大的语音上市公司,股票代码:002230"; //合成文本 char login_params[1024]; char session_begin_params[1024]; char filename[512]; char text[4096]; int i; for (i = 0; i < argc; i++) { printf("%s\n", argv[i]); } if (argc<8) { printf("usage: THE_CMD appid speaker speed volume pitch filename \"text\"\n"); return 1; } sprintf(login_params, "appid = %s, work_dir = .", argv[1]); sprintf(session_begin_params, "voice_name = %s, text_encoding = UTF8, sample_rate = 16000, speed = %s, volume = %s, pitch = %s, rdn = 2", argv[2], argv[3], argv[4], argv[5]); sprintf(filename, "%s", argv[6]); sprintf(text, "%s", argv[7]); printf("login %s\n", login_params); printf("params %s\n", session_begin_params); printf("filename %s\n", filename); printf("text %s\n", text); /* 用户登录 */ ret = MSPLogin(NULL, NULL, login_params);//第一个参数是用户名,第二个参数是密码,第三个参数是登录参数,用户名和密码可在http://open.voicecloud.cn注册获取 if (MSP_SUCCESS != ret) { printf("MSPLogin failed, error code: %d.\n", ret); goto exit ;//登录失败,退出登录 } /* 文本合成 */ printf("开始合成 ...\n"); ret = text_to_speech(text, filename, session_begin_params); if (MSP_SUCCESS != ret) { printf("text_to_speech failed, error code: %d.\n", ret); } printf("合成完毕\n"); exit: MSPLogout(); //退出登录 return 0; }