资料来自:
http://blog.csdn.net/dedodong/archive/2006/08/22/1105879.aspx
取得每个汉字读音的代码
#include <stdio.h>
#include <unistd.h>
#define maxlen 32000
int main(){
FILE * fpr;
FILE * fpw;
//打开临时r.wav语音库
if((fpr=fopen("r.wav","r+"))==NULL){
printf("open r.wav error");
return -1;
}
//打开w.wav文件
if((fpw=fopen("w.wav","w+"))==NULL){
printf("open w.wav error");
return -1;
}
char head[46];//存放wav的头信息
char data[1000];
char buffer[maxlen];//存放每个汉字的读音
int fpoint;//文件当前的位置
int fpointtemp=47;
int isnozero=1;
int num=0;
memset(buffer,0,sizeof(buffer));//初始化buffer
fread(head,sizeof(head),1,fpr);//读wav的头信息46个字节
fwrite(head,sizeof(head),1,fpw);//把头信息写到w.wav文件中去
fread(buffer,sizeof(buffer),1,fpr);
fwrite(buffer,sizeof(buffer),1,fpw);
while(!feof(fpr)){//读文件的信息,直到文件尾
// printf("*****************\n");
//读16个字节判断.找到第一次出现都为0的位置
isnozero=1;
while(isnozero){
fread(data,16,1,fpr);
int i;
int j;
int k=0;
for(i=0;i<16;i++){
j=(int)data[i];
k+=j;
}
if(k==0){
printf("read 1000\n");
fread(data,1000,1,fpr);
if(feof(fpr)){
printf("文件被读完1");
fpoint=ftell(fpr);
printf("fpoint si :%d",fpoint);
exit(1);
}
for( i=0;i<1000;i++){
j=(int)data[i];
k+=j;
}
if(k==0){
fpoint=ftell(fpr);
isnozero=0;
printf(" fpoint data is :%d\n",fpoint);
}else{
isnozero=1;
}
}else{
isnozero=1;
}
}
//找到非0的那一行
int iszero=1;
while(iszero){
fread(data,16,1,fpr);
// printf("num is :%d\n",num);
if(feof(fpr)){
printf("num is :%d\n",num);
printf("文件读完了\n");
fpoint=ftell(fpr);
printf("file len is :%d",fpoint);
fclose(fpr);
fclose(fpw);
exit(-1);
}
int i,j,k=0;
for(i=0;i<16;i++){
j=(int)data[i];
k+=j;
// printf("k is :%d\n",k);
}
if(k==0){
iszero=1;
// printf("k==0\n");
}else{
iszero=0;
fseek(fpr,fpoint-16,SEEK_SET);
int isz=1;
while(isz){
fread(data,1,1,fpr);
if((int)data[0]!=0){
//主要的工作{得到每个汉字的语音数据}
fpoint=ftell(fpr);
printf(" num is --%d fpoint is :%d\n",++num,fpoint);
fseek(fpr,fpoint-2,SEEK_SET);
fread(buffer,sizeof(buffer),1,fpr);
fwrite(buffer,sizeof(buffer),1,fpw);
isz=0;
}
}
}
}
}
fclose(fpr);
fclose(fpw);
return 0;
}
分享到:
相关推荐
TTS 引擎 可以让单词发音得软件包 TTS 引擎 可以让单词发音得软件包
科大讯飞TTS离线语音包,供科大讯飞Android TTS引擎使用
提取自GoogleTTS中文语音数据包,供系统开发时内置中文语音,com.google.android.tts/app_voices_greco_v16
谷歌tts中文语音数据包,谷歌语音由于下载数据包需要vpn网络,这个包是下载好的中文女声语音数据包。将数据包拷贝data/下的谷歌tts目录下即可
语音包里面包含语言如下: E 英文 F 法语 G 德语 I 印尼语 J 日本语 K 韩语 L 泰语 P 葡萄牙语 R 俄语 S 简体中文 ...2运行install_tts.bat脚本,然后根据提示输入设备ip 按回车键 脚本自动执行
软件开发设计:PHP、QT、...云计算与大数据:数据集、包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。
需要 TTS引擎 需要.net Framework2.0+ 名称:图书管理系统 作者:白忠魏 班级:计科3 学校:成都市理工大学 一. 需求分析 完成简单的图书管理业务 1)新书入库:登记新书的编号.书名.作者和数量 2)书目信息维护 : 删除,...
微软TTS文本转语音引擎的确是非常NB,合成语音非常接近真人,应该是当前同类产品中体验最好的,官网有提供在线语音合成,但不提供合成后的音频文件下载,使用时会比较麻烦,所以写成工具。 注意 1、记得先解压,且...
支持多种压缩参数和谱参数引擎; 支持动态音频参数规划; 支持流式文本输入; 支持进度通知; 支持同步回显拼音输出; 全新架构,具有高可靠的稳定性。 2.2. 高品质的语音合成效果 由于采用了新的语音合成算法,...
高效,快速和高质量的语音合成引擎。 重要说明:此扩展程序仅适用于运行Chrome操作系统的Chromebook设备。 该扩展程序是免费的,因此您可以在线模式尝试所有语音,但是您必须购买语音才能将其集成到Chromebook系统中...
目前,国内已经具备开发车载语音导航系统的技术基础,特别是文语转换TTS技术和基于中小词汇量的语音命令识别技术已经达到比较实用的程度。本文在课题组的车载导航系统和国内两款语音引擎的基础上,开发了一套支持...
4.2 图形引擎 207 4.3 窗口机制层 224 4.4 图形设备接口 290 4.5 控件集 350 4.6 GUI消息 402 4.7 GUI数据说明 477 5 PHONE 516 5.1 系统模型 516 5.2 呼叫管理 517 5.3 网络管理 519 5.4 数据结构定义 532 5.5 常量...
(如果有记忆的话,那是一门关于数据可视化的课程。)我对介绍的内容感到满意,但我始终觉得可以做的更多。 该项目的目标是创建一个文本到语音模块,该模块将接受输入文本并输出音频文件。 我收到了有声读物格式的...
为了使所有人都能使用语音处理,我们还将在一些开源数据集上发布示例实现和配方,以完成各种任务(自动语音识别,语音合成,语音转换,说话者识别等)。 我们所有的模型都在Tensorflow> = 2.0.1中实现。 为了易于...
安装注意事项:下载解压后请安装文件夹里的“微软TTS5.1语音引擎(中文)”组件,否则无法发音读名字。 本程序主要有如下特点: 1、用“↑↓”箭头移动考生数据,用“→”箭头照相,一手操作摄像头,一手操作键盘即可...
汉语拼音按照26个字母顺序排序,对应全简体汉字列表。UTF-8编码,经过严格纠错和程序测试。可用于数据挖掘,搜索引擎,TTS等领域。
例如,在搜索引擎中,知识图谱可以提升搜索结果的相关性和准确性,为用户提供直接的答案而非仅仅是网页链接。同时,知识图谱还能支撑高级的人工智能应用,比如问答系统、推荐系统、决策支持等领域。 构建知识图谱的...
安装注意事项:下载解压后请安装文件夹里的“微软TTS5.1语音引擎(中文)”组件,否则无法发音读名字。 本程序主要有如下特点: 1、用“↑↓”箭头移动考生数据,用“→”箭头照相,用“←”可以帮你呼叫学生名字,...
Mycroft开源Mimic技术是文本到语音引擎,可将一段书面文本转换为语音。 该技术的最新一代Mimic 2使用机器学习技术来创建一个模型,该模型可以说一种特定的语言,听起来像是经过训练的声音。 Mimic Recording Studio...