资源简介
代码简介:本代码使用纯C实现语音的合成(女声,话质可以),可以在windwos和linux下直接使用。编译生成可执行程序(修改初始文本位置、生成位置即可)
代码片段和文件信息
/*
* 语音合成(Text To Speech,TTS)技术能够自动将任意文字实时转换为连续的
* 自然语音,是一种能够在任何时间、任何地点,向任何人提供语音信息服务的
* 高效便捷手段,非常符合信息时代海量数据、动态更新和个性化查询的需求。
*/
#include
#include
#include
#include
#include
#include “qtts.h“
#include “msp_cmn.h“
#include “msp_errors.h“
#ifdef _WIN64
#pragma comment(lib“../../libs/msc_x64.lib“)//x64
#else
#pragma comment(lib“../../libs/msc.lib“)//x86
#endif
/* wav音频头部格式 */
typedef struct _wave_pcm_hdr
{
char riff[4]; // = “RIFF“
int size_8; // = FileSize - 8
char wave[4]; // = “WAVE“
char fmt[4]; // = “fmt “
int fmt_size; // = 下一个结构体的大小 : 16
short int format_tag; // = PCM : 1
short int channels; // = 通道数 : 1
int samples_per_sec; // = 采样率 : 8000 | 6000 | 11025 | 16000
int avg_bytes_per_sec; // = 每秒字节数 : samples_per_sec * bits_per_sample / 8
short int block_align; // = 每采样点字节数 : wBitsPerSample / 8
short int bits_per_sample; // = 量化比特数: 8 | 16
char data[4]; // = “data“;
int data_size; // = 纯数据长度 : FileSize - 44
} wave_pcm_hdr;
/* 默认wav音频头部数据 */
wave_pcm_hdr default_wav_hdr =
{
{ ‘R‘ ‘I‘ ‘F‘ ‘F‘ }
0
{‘W‘ ‘A‘ ‘V‘ ‘E‘}
{‘f‘ ‘m‘ ‘t‘ ‘ ‘}
16
1
1
16000
32000
2
16
{‘d‘ ‘a‘ ‘t‘ ‘a‘}
0
};
/* 文本合成 */
int text_to_speech(const char* src_text const char* des_path const char* params)
{
int ret = -1;
FILE* fp = NULL;
const char* sessionID = NULL;
unsigned int audio_len = 0;
wave_pcm_hdr wav_hdr = default_wav_hdr;
int synth_status = MSP_TTS_FLAG_STILL_HAVE_DATA;
if (NULL == src_text || NULL == des_path)
{
printf(“params is error!\n“);
return ret;
}
fp = fopen(des_path “wb“);
if (NULL == fp)
{
printf(“open %s error.\n“ des_path);
return ret;
}
/* 开始合成 */
sessionID = QTTSSessionBegin(params &ret);
if (MSP_SUCCESS != ret)
{
printf(“QTTSSessionBegin failed error code: %d.\n“ ret);
fclose(fp);
return ret;
}
ret = QTTSTextPut(sessionID src_text (unsigned int)strlen(src_text) NULL);
if (MSP_SUCCESS != ret)
{
printf(“QTTSTextPut failed error code: %d.\n“ret);
QTTSSessionEnd(sessionID “TextPutError“);
fclose(fp);
return ret;
}
printf(“正在合成 ...\n“);
fwrite(&wav_hdr sizeof(wav_hdr) 1 fp); //添加wav音频头,使用采样率为16000
while (1)
{
/* 获取合成音频 */
const void* d
- 上一篇:03_UVM-Harness.pdf
- 下一篇:亿辰PCI串口猫池驱动.rar
相关资源
- 亿辰PCI串口猫池驱动.rar
- 使用完成端口实现IOCP服务器端框架,
- SVPWM技术在dsPIC上的实现.pdf
- STC89c52驱动
- quartus 17.0最新license
- Cross-Scale Cost Aggregation Code
- Arcgis desktopenginedeveloper.kit10.2
- CentOS-7-x86_64-DVD-1611 ISO镜像
- CC2530 T1 产生PWM 代码 + 代码文档
- devcon.exe(32位,64位)驱动安装卸载工
- 过流过压保护.doc
- 基于粒子群算法的机组组合计算
- wowpc.iso.Chameleon_2.2svn_r2378_trunk_10.10
- SM9541压力传感器编程指南
- Cisco AP由瘦AP刷成胖AP
- Linux下QT tcp接收Zedboard发送的RGB888视频
- STM32的傅里叶算法
- 深信服渠道AC高级认证 B卷-73分.docx
- STM32F103ZET6 原理图文件SCH 。protel99s
- dropload多个+js+css源码,可直接套用
- Vivado dds compiler6.0开发者手册
- stm32固件库改写文件
- 人工智能-知识图谱-实战.docx
- peter J. Brockwell time series 答案
- 各种chart图表
- Mirrors2.unitypackage
- Unity Shader镜子
- Unity类似CS射击游戏源码可实现多人联
- SScom33.exe很好用的串口调试工具
- ch340t封装文件
评论
共有 条评论