已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
语音合成开发包语音合成开发包 SDK V4.10 产品使用手册产品使用手册 北京炎黄新星网络科技有限公司 前前 言言 “炎黄之声” (SINOSONIC)语音合成技术,可以将文本转换为自然、流畅的语音进行输 出。 “炎黄之声” (SINOSONIC)是炎黄新星具有世界领先水平并拥有自主知识产权的核心技 术。它依托于清华大学“人机交互与媒体集成研究所”20 余年的研究成果,采用最先进的语 音算法,在国内外语音会议上屡获殊荣。 “炎黄之声” (SINOSONIC)采用了目前世界最先进的数据驱动技术,使用精心设计的语 音语料库进行录音,得到的系统体现了流畅、自然的语言特性,发音效果自然、亲切,用户 乐于接受。 “炎黄之声” (SINOSONIC)在国内首次运用“基于神经网络的韵律模型” ,使系统具有智 能化的学习功能,能够自动记忆、自我培训,灵活进行语音、语调的选择,让系统能够逐渐 模拟人的发音效果。 “炎黄之声” (SINOSONIC)是国内唯一一家获得国家级发明专利的语音合成技术, “让电 脑说中国话,用中国人自己的专利”是整个研发团队不懈的追求! “炎黄之声”(SINOSONIC)作为世界级的语音合成技术,运用了最先进的语音算法和模 型,其核心技术包括:基于神经网络的韵律模型、基于 HMM 的语音切分和选取模型、基于 HMM 的多语种文本分析和语义分析、中英文语料库设计和标注、语音分析工具的研制等。 目目 录录 前前 言言 .1 第一章第一章 产品介绍产品介绍 .4 1.1 产品功能 .4 1.2 产品特点 .4 1.3 产品应用 .4 第二章第二章 产品安装及卸载产品安装及卸载 .6 2.1运行环境 .6 2.2 安装过程 .6 2.3 卸载过程 .10 第三章第三章 目录结构及文件说明目录结构及文件说明 .17 3.1 目录结构 .17 3.2 文件说明 .17 第四章第四章 函数使用说明函数使用说明 .18 4.1 函数列表 .18 4.2 TTSINIT.19 4.3 TTSCLOSE.19 4.4 TTSLOGON19 4.5 TTSLOGDOWN.20 4.6 TTSPLAY.20 4.7 TTSGENDERSET23 4.8 TTSGENDERGET.23 4.9 TTSSPEEDSET.24 4.10 TTSSPEEDGET.24 4.11 CTTSPITCHSET25 4.12 CTTSPITCHGET.25 4.13 CTTSSPEEDSET.26 4.14 CTTSSPEEDGET26 4.15 ETTSSPEEDSET.26 4.16 ETTSSPEEDGET.27 4.17 TTSGBORBIG527 4.18 TTSLANGUAGESET.28 4.19 TTSLANGUAGEGET29 4.20 TTSPARAMSET29 4.21 TTSPARAMGET.30 4.22 TTSCHANGEWAVEFMT30 4.23 TTSPCMTOWAVE.31 4.24 TTSPCMTOALAW.31 4.25 TTSPCMTOULAW.32 4.26 TTSPCM16TO8.32 4.27 TTSPCM8TO16.33 4.28 CONVERTTOVOX8 .33 4.29 CONVERTTOVOX.34 4.30 TTSWRITETOFILE.35 4.31 TTSWRITETOFILEEX35 第五章第五章 USERMAN.EXE 使用说明使用说明.37 5.1 添加汉字单词 .37 5.2 修改汉字单词 .38 5.3 删除汉字单词 .39 5.4 排序汉字单词 .39 5.5 添加英文字符串 .39 5.6 修改英文字符串 .40 5.7 删除英文字符串 .41 5.8 排序英文字符串 .41 5.9 重新装入用户词典 .41 5.10 保存用户词典 .41 5.11 问题解答 .42 第六章第六章 范例范例 .43 联系方式联系方式 .44 第一章第一章 产品介绍产品介绍 语音合成开发包,充分运用“炎黄之声”语音合成技术,为系统集成商、软件开发商提 供了完备的接口函数和编程实例,使用户能够灵活的进行调用,并集成到其它应用系统中。 目前,炎黄新星已经成功推出了SDK V1.0、SDK V2.0、SDK V2.1、SDK V3.0、SDK V3.2、SDK V4.1等多个版本,其中SDK V1.0成功嵌入在汉王公司的产品中,目前使用用户已 经达到百万户。 语音合成开发包SDKV4.1是炎黄新星最新推出的产品,它与其它几个版本相比,在产品 特点、功能、性能方面产生了质的飞跃。 1.1 产品功能产品功能 1.系统可提供连续的、高自然度和高清晰的合成语音。 2.内嵌具有自主版权的连续英文语音合成系统。 3.自动识别并处理 GB、GBK 和 BIG5 字符集。 4.能正确处理汉语中的标点、数字、运算符等。 5.支持计算机内置声卡及多种电话语音卡。 6.提供标准的程序函数接口,可方便地进行二次开发。 7.提供放音时暂停、恢复、终止等各项操作接口。 8.提供语音字典维护功能,用户可根据实际情况添加、删除、更改词库中某些词或特 殊字符的发音。 9.炎黄英文或微软英文用户可自选。 1.2 产品特点产品特点 1.国内首家采用神经网络韵律模型,使系统具有自我学习、自我培训的智能功能,选 音准确度大大提高。 2.采用长句录音,语言的自然度得到了提高。 3.音库采用中央广播电台的主任级播音员录音。 4.接口API支持多线程开发,大大提高系统运行效率。 5.中英文语音合成系统都具有自主版权,中英文混读效果好。 1.3 产品应用产品应用 SinoSonic SDK Version 4.1 语音合成开发包的应用可包括: 1.自动声讯 2.专利查询 3.证券代理 4.电话银行 5.CALL CENTER 6.Internet信息的有声传送 第二章第二章 产品安装及卸载产品安装及卸载 2.1 运行环境运行环境 1.主机处理器: PIII500及以上 2.主机内存:256MB 3.操作系统:Windows9x、WindowsNT4.x、Windows2000 2.2 安装过程安装过程 不同 Windows 环境下的安装方式大致相似: 第一步:将安装光盘放入光驱内,软件会自动运行光盘中的安装程序,安装程序启动后会 出现炎黄之声SDK V4.1语音合成系统的安装界面,如下图 如不能自启动,请运行光盘中的setup.exe程序。 第二步:点击“下一步”按钮,进入安装许可协议界面。 点击“是”进入输入注册信息界面输入产品的序列号,该序列号可以在安装光盘的 SN.TXT文件中找到。 输入完序列号,点击“下一步”进入选择安装路径界面。 选择完安装路径后,点击“下一步”进入选择安装类型界面。 选择完安装类型,点击“下一步”进入选择安装程序文件夹界面。 输入新的文件夹名称,也可以使用系统默认文件名,点击“下一步”按钮开始拷贝文件, 拷贝完文件后,出现安装完成页面。 点击“完成”按钮,安装完成。 注意: 如在 Windows NT 环境下用户必须具备 Administrator 的使用权限, 安装完毕 后必须重新启动系统. 第三步:安装软件狗 A、首先关闭计算机。 B、然后将软件狗(有并口和USB口两种)插在并口或USB口上。 C、启动计算机。注意:在Windows NT环境中一定要以Administrator身份进入系统。 D、如果是第一次安装USB硬件,系统会提示查找到新硬件, 并自动安装对新硬件的 驱动。 安装光盘中带有USB硬件的驱动程序。 2.3 卸载过程卸载过程 卸载顺序:首先卸载软件狗,然后卸载 USB 驱动程序,最后卸载“炎黄之声 SDKV4.1 正 式版”软件。 一、Windows2000Windows2000 下的卸载方法:下的卸载方法: 第一步:卸载软件狗驱动程序:第一步:卸载软件狗驱动程序: 点击 Windows“开始”菜单中的“运行” 。 在运行窗口中输入 s3_inst.exe /u 命令行,点击“确认”按钮即可。 注: 如在 Windows NT 环境下用户必须具备 Administrator 的使用权限, 卸载完毕后 也需要重新启动系统. 第二步:第二步: 卸载卸载 USBUSB 驱动程序:驱动程序: 1.打开“开始菜单-设置-控制面板”页面。 2.双击“添加/删除硬件”图标。 3.然后根据提示单击下一步。 4.在“选择您想卸载的设备”中,选中“USB Root Hub” 。 点击“下一步”按钮,进入确认卸载界面。 选择“是,想卸载此设备(Y) ” ,点击“下一步”按钮完成卸载。 第三步:卸载第三步:卸载炎黄之声炎黄之声 SDKV4.1SDKV4.1 正式版正式版程序:程序: 1.打开“开始菜单-设置-控制面板”页面。 2.双击“添加/删除程序”图标。 3.找到并选中“炎黄之声 SDKV4.1 正式版” ,点击选中栏中右下方会的“更改/删除” 按钮,进入炎黄之声 SDKV4.1 正式版安装维护程序界面。 选中“删除”项,点击“下一步”按钮,进入确认删除界面。 点击“确认”按钮卸载完成。 二、Windows98Windows98 下的卸载方法:下的卸载方法: 第一步:卸载软件狗驱动程序:第一步:卸载软件狗驱动程序: 点击 Windows“开始”菜单中的“运行” 。 在运行窗口中输入 s3_inst.exe /u 命令行,点击“确认”按钮即可。 第二步:第二步: 卸载卸载 USBUSB 驱动程序:驱动程序: 1.开始菜单-设置-控制面板 2.双击“系统” 。 3.选择“设备管理器”Tab,在列表框中选中“通用串行总线控制器”下的“USB Root Hub” ,单击“删除”按钮。 4.然后根据提示卸载即可。 第三步:卸载第三步:卸载炎黄之声炎黄之声 SDKV4.1SDKV4.1 正式版正式版程序:程序: 1.开始菜单-设置-控制面板 2.双击“添加/删除程序” 选择“安装/卸载”Tab,在列表框中选中“炎黄之声 SDKV4.1 正式版” ,单击“添加/删 除”按钮。 第三章第三章 目录结构及文件说明目录结构及文件说明 3.1 目录结构目录结构 Data: 该目录中放置的是软件所需的音库和词库内容和 UserMan.exe。 Bin: 该目录中放置的是 TTS 所需的动态链接库和 SSPlay.exe(语音合成演示程序) 。 SDK_Demo : 该目录下放置的是接口 API 使用的例子程序。 Help : 该目录下放置的是帮助文件。 Driver: 该目录下放置的是软件狗的驱动。 3.2 文件说明文件说明 UserMan.exe 是用来编写用户词典的,可以扩大 TTS 合成系统的词库量。具体帮助请看 BinUSERMAN.HLP. SSPlay.exe 是用来检查合成效果的测试程序。 本软件共提供一套 API 开发接口: TTS SDK API 接口,用来开发合成系统。例子程序在 SDK_Demo 中, 需要 SDK_Demoectts.h 和 SDK_Demoectts.lib 两个文件。 API 的使用帮助请见 HelpSINOSONIC_SDK_V4.10 用户手册.doc。 第四章第四章 函数使用说明函数使用说明 4.1 函数列表函数列表 本软件包包括如下接口函数: 1.ttsInit初始化TTS合成系统。 2.ttsClose关闭TTS合成系统。 3.ttslogon 创建语音合成的线程环境。 4.ttslogdown 关闭语音合成的线程环境。 5.ttsPlay将文本合成语音数据。 6.ttsGenderSet设置TTS合成系统说话人的性别。 7.ttsGenderGet获得TTS合成系统说话人的性别。 8.ttsSpeedSet设置TTS合成系统语速。 9.ttsSpeedGet获得TTS合成系统语速。 10. cttsPitchSet设置汉语TTS合成系统音调。 11. cttsPitchGet获得汉语TTS合成系统音调。 12. cttsSpeedSet设置汉语TTS合成系统语速。 13. cttsSpeedGet获得汉语TTS合成系统语速。 14. ettsSpeedSet设置英语TTS合成系统语速。 15. ettsSpeedGet获得英语TTS合成系统语速。 16. ttsGBorBig5汉字编码识别。 17. ttsLanguageSet设置BIG5码和国标码。 18. ttsLanguageGet获得编码设置。 19. ttsParamSet设置文本读法格式参数。 20. ttsParamGet获得文本读法格式参数。 21. ttsChangeWaveFmt 转换语音数据格式。 22. ttsPcmToWavePCM数据转成WAV数据。 23. ttspcmtoalawPCM数据转成A-law数据。 24. ttspcmtoulawPCM数据转成U-law数据。 25. ttspcm16to816位PCM数据转成8位PCM数据。 26. ttspcm8to168位PCM数据转成16位PCM数据。 27. ConvertToVox8将PCM格式语音数据转换成Vox(8000采样率)格式。 28. ConvertToVox将PCM格式语音数据转换成Vox格式。 29. ttsWriteToFile将缓存中的语音数据写入文件。 30. ttsWriteToFileEx 将缓存中的语音数据写入到文件,函数内部进行数据格式的变换。 4.2 ttsInit 初始化 TTS 合成系统。 语法: BOOL WINAPI ttsInit(char * strDataPath,BOOL bReadIntoMem); 参数: strDataPath合成系统数据文件路径。 bReadIntoMem音库是否读入内存,TRUE 读入;FALSE 不读入。 返回值: 成功返回 TRUE,否则返回 FALSE。 注释: 使用语音合成系统时,必须先调用本函数初始化系统,退出时应调用关闭函数。 范例: 参见 ttsPlay。 4.3 ttsClose 关闭 TTS 合成系统。 语法: BOOL WINAPI ttsClose(); 参数: 无。 返回值: 成功返回 TRUE;否则返回 FALSE。 注释: 使用语音合成系统时,必须先调用初始化函数,退出时应调用本函数。 范例: 参见 ttsPlay。 4.4 ttslogon 创建语音合成的线程环境。 语法: int WINAPI ttslogon(); 参数: 无。 返回值: 返回的是线程环境描述符,正常返回大于等于 0 的整数,返回-1 为失败。 注释: 在正确执行 ttsInit 函数后调用此函数,ttsPlay 等函数必须在线程环境中运行,也就 是说只有成功调用此函数后才能调用 ttsPlay 等函数。 范例: 参见 ttsPlay。 4.5 ttslogdown 关闭语音合成的线程环境。 语法: BOOL WINAPI ttslogdown(int *cid); 参数: cid线程环境描述符指针。 返回值: 正常返回为 TRUE,失败为 FALSE。 注释: 当线程调用结束后,必须调用这个函数来释放为合成分配的线程环境资源。 范例: 参见 ttsPlay。 4.6 ttsPlay 将文本合成语音数据。 语法: char * WINAPI ttsPlay(char * pStrText, TWAVEPARAM * pWaveParam, TTXTPARAM * pTxtParam, TTHPARAM * pTHParam, TCTRLPARAM * pCtrlParam,int * cid); 参数: pStrText待合成文本。 pWaveParam合成语音数据参数,返回合成的语音数据。 参数结构: typedef struct waveParam char *pData;输入:合成语音数据缓存指针。 unsigned long nLength;输入:缓存大小; 返回:语音数据实际长度(单位:Byte 字节)。 intnSamplesPerSec; 返回:语音数据采样率(单位:Hz 赫兹)。 intnBitsPerSample; 返回:语音数据量化精度(单位:Bit 位)。 TWAVEPARAM, * PWAVEPARAM; pTxtParam返回拼音信息和切分的文本信息。一般用户可设成 NULL。 参数结构: typedef struct txtParam char *pPinyin;返回的拼音信息。 char *pSepText;返回的文本切分信息。 TTXTPARAM, * PTXTPARAM; pTHParam返回 TalkingHead 参数,用于说话人人脸的合成。一般用户可设成 NULL。 参数结构: typedef struct thParam char *pPinyin;返回的拼音信息。 Int *pPauses;返回每个音节前的停顿时长(单位:ms 毫秒)。 Int *pDurations;返回每个音节的时长信息(单位:ms 毫秒)。 intnSyllNumber;返回音节个数。 TTHPARAM, * PTHPARAM; pCtrlParam上下文控制参数,用于判断是否使用英文,是否句首,句尾只需 设定初始值,之后由程序自动设定。 参数结构: typedef struct ctrlParam BOOLbEnglish;当前文本中英文状态。TRUE 为英文,FALSE 为中文。 BOOLbForced;与 bEnglish 结合使用,TRUE 强制,FALSE 自动分析。 BOOLbStart;是否句首,TRUE 为句首。 BOOLbEnd;是否句尾,TRUE 为句尾。 TCTRLPARAM, * PCTRLPARAM; cid线程环境描述符指针。 返回值: 下次需要合成的文本位置,如果文本处理完毕则指向结尾的“0”。 注释: 其中 pStrText,pCtrlParam,PWaveParam 不能为空。 pTxtParam,pTHParam 相互独立,而且可以为 NULL,当其为 NULL 时,则不返回该 参数。 bEnglish、bForced 两参数联合使用,其值决定了遇到对于某些可以按照中文阅读 也可以按照英文阅读的情况(比如:英文大写字母、英文缩略语等)时是使用汉语发音 还是转换到英文合成系统。 注意:所有的缓冲区空间,必须在外部分配。 ttsPlay 必须在某个线程环境中执行,因此必须先执行 ttslogon 函数。 TtsPlay 调用返回是按句进行的,所以需要反复调用。 注意调用 ttsPlay,TWAVEPARAM.nLength 是输出的语音数据长度,故循环调用时该 参数需要重新赋值。 生成的语音数据是 16000Hz、16Bits 的 PCM 数据。 本版本英文支持炎黄英文,也可以使用微软英文,有关微软英文的安装参见有关手 册,本版本支持微软 SAPI5.1 版本。选择使用哪个英文系统,在 Datayh_set.ini 中设 置,出厂默认使用炎黄英文,如果是微软英文,修改 Datayh_set.ini 中有关内容。 如:最后一行“CurrentGroup= YanHuang”使用炎黄英文。 如:最后一行“CurrentGroup= Microsoft_woman”使用微软 SAPI5.1 的 Mary 语 音。 范例: /TTS API 定义 #inclue “ectts.h” /系统初始化。 ttsInit(“Data”,0);/系统音库所在路径:“Data”; /指示音库不装入内存中。 /以下是线程处理 /以下代码为某个用户线程中的线程代码 int cid = ttslogon();/创建语音合成的线程环境。 ttsGenderSet(FALSE,/合成系统设置为女声。 ttsSpeedSet(4, /合成系统设置为正常语速。 Char * buff = (char *)malloc(1024*1024); /合成参数设置 TWAVEPARAM twave; Twave.pData = buff;/语音数据缓存指针。 /文本参数设置 TCTRLPARAM tctr; tctr.bEnglish = FALSE;/中文状态 tctr.bForced = TRUE;/和 bEnglish 配合,遇到英文缩略语等按照中文阅读。 tctr.bStart = TRUE;/句首,第一次调用设成 TRUE tctr.bEnd = TRUE;/句尾,第一次调用设成 TRUE char playbuff256 = “华意语音计算研究中心。中英文 TTS 合成系统。”; char * playptr;/用于 ttsPlay()循环 playptr = playbuff; while(playptr /注意每次调用 ttsPlay()前赋该参数。 playptr = ttsPlay(playptr, /进行合成 /语音数据在 twave.pData 中,twave.nLength 数据长度。 free(buff); ttslogdown( /以上线程处理结束 /以下为系统结束时代码 ttsClose(); 4.7 ttsGenderSet 设置 TTS 合成系统说话人的性别。 语法: BOOL WINAPI ttsGenderSet(BOOL bMale, int * cid); 参数: bMaleTRUE 为男声;FALSE 为女声。 cid线程环境描述符指针。 返回值: 正常返回 TRUE;否则返回 FALSE。 注释: 此函数必须在某个线程环境中执行,因此必须先执行 ttslogon 函数。 范例: int cid = ttslogon(); ttsGenderSet(FALSE, 4.8 ttsGenderGet 获得当前 TTS 合成系统说话人的性别。 语法: BOOL WINAPI ttsGenderGet(int * cid); 参数: bMaleTRUE 为男声;FALSE 为女声。 cid线程环境描述符指针。 返回值: 返回 TRUE 为男声;返回 FALSE 为女声。 注释: 无。 范例: int cid = ttslogon(); BOOL b = ttsGenderGet( 4.9 ttsSpeedSet 设置 TTS 合成系统语速。 语法: BOOL WINAPI ttsSpeedSet(int speed, int * cid); 参数: speed0-9 之间,0 为最慢,超过此范围,自动设置为相应的限值。标准速度为 4。 cid线程环境描述符指针。 返回值: 正常返回 TRUE;否则返回 FALSE。 注释: 此函数必须在某个线程环境中执行,因此必须先执行ttslogon函数。 范例: int cid = ttslogon(); ttsSpeedSet(4, 4.10 ttsSpeedGet 获得当前 TTS 合成系统语速。 语法: int WINAPI ttsSpeedGet(int * cid); 参数: cid线程环境描述符指针。 返回值: 返回 TTS 合成系统语速,返回值在 0-9 之间,0 为最慢。 注释: 当中文和英文语速不一致时,返回中文的合成语速。 此函数必须在某个线程环境中执行,因此必须先执行ttslogon函数。 范例: int cid = ttslogon(); int x = ttsSpeedGet( 4.11 cttsPitchSet 设置中文 TTS 合成系统音调。 语法: BOOL WINAPI cttsPitchSet(int pitch, int * cid); 参数: pitch。0-9 之间,0 为基频最低,9 最高,超过此范围,自动设置为相应的限值。 标准基频为 5。 cid线程环境描述符指针。 返回值: 正常返回 TRUE;否则返回 FALSE。 注释: 此函数必须在某个线程环境中执行,因此必须先执行ttslogon函数。 范例: int cid = ttslogon(); cttsPitchSet(5, 4.12 cttsPitchGet 获得当前汉语 TTS 合成系统音调。 语法: int WINAPI cttsPitchGet(int * cid); 参数: cid线程环境描述符指针。 返回值: 返回汉语 TTS 合成系统音调。0-9 之间,0 为基频最低,9 最高。标准基频为 5。 注释: 此函数必须在某个线程环境中执行,因此必须先执行ttslogon函数。 范例: int cid = ttslogon(); int x = cttsPitchGet( 4.13 cttsSpeedSet 设置汉语 TTS 合成系统语速。 语法: BOOL WINAPI cttsSpeedSet(int speed, int * cid); 参数: speed0-9 之间,0 为最慢,超过此范围,自动设置为相应的限值。 标准速度为 4。 cid线程环境描述符指针。 返回值: 正常返回 TRUE;否则返回 FALSE。 注释: cttsSpeedSet与ttsSpeedSet,以最后调用的函数为准。 此函数必须在某个线程环境中执行,因此必须先执行ttslogon函数。 范例: int cid = ttslogon(); cttsSpeedSet(4, 4.14 cttsSpeedGet 获得汉语 TTS 合成系统语速。 语法: int WINAPI cttsSpeedSet(int * cid); 参数: cid线程环境描述符指针。 返回值: 返回汉语 TTS 合成系统语速,返回值在 0-9 之间,0 为最慢。 注释: 此函数必须在某个线程环境中执行,因此必须先执行ttslogon函数。 范例: int cid = ttslogon(); int x = cttsSpeedGet( 4.15 ettsSpeedSet 设置英语 TTS 合成系统语速。 语法: BOOL WINAPI ettsSpeedSet(int speed, int * cid); 参数: speed0-9 之间,0 为最慢,超过此范围,自动设置为相应的限值。 标准速度为 4。 cid 线程环境描述符指针。 返回值: 正常返回 TRUE;否则返回 FALSE。 注释: ettsSpeedSet与ttsSpeedSet,以最后调用的函数为准。 此函数必须在某个线程环境中执行,因此必须先执行ttslogon函数。 范例: int cid = ttslogon(); ettsSpeedSet(4, 4.16 ettsSpeedGet 获得英语 TTS 合成系统语速。 语法: int WINAPI ettsSpeedSet(int * cid); 参数: cid线程环境描述符指针。 返回值: 返回英语 TTS 合成系统语速,返回值在 0-9 之间,0 为最慢。 注释: 此函数必须在某个线程环境中执行,因此必须先执行ttslogon函数。 范例: int cid = ttslogon(); int x = ettsSpeedGet( 4.17 ttsGBorBig5 判断汉字编码。 语法: int WINAPI ttsGBorBig5(char * lpText); 参数: lpText判断的文本指针。 返回值: 返回 0:判断不出。 返回 1:GBK Code。 返回 2:Big5 Code。 注释: 无。 范例: switch(ttsGBorBig5(TextBuff) case 0: case 1: ttsLanguageSet(LANGUAGE_CH_GB, break; case 2: ttsLanguageSet(LANGUAGE_CH_BIG5, break; 4.18 ttsLanguageSet 设置输入文本为国标码还是 BIG5 码。 语法: WORD WINAPI ttsLanguageSet(WORD lan, int * cid) 参数: LANGUAGE_CH_GB国标码(缺省设置); LANGUAGE_CH_BIG5big5 码; LANGUAGE_CH_AUTO自动识别。 cid线程环境描述符指针。 返回值: 无。 注释: 此函数必须在某个线程环境中执行,因此必须先执行ttslogon函数。 范例: 参见 ttsGBorBig5。 4.19 ttsLanguageGet 获得当前输入文本为国标码还是 BIG5 码设置参数。 语法: WORD WINAPI ttsLanguageGet(int * cid) 参数: cid 线程环境描述符指针。 返回值: LANGUAGE_CH_GB国标码; LANGUAGE_CH_BIG5big5 码; LANGUAGE_CH_AUTO自动识别。 注释: 此函数必须在某个线程环境中执行,因此必须先执行ttslogon函数。 范例: 无。 4.20 ttsParamSet 设置文本读法格式参数。 语法: int WINAPI ttsParamSet(int type, int value, int * cid); 参数: type文本读法参数类型。(黑体为缺省设置) DIGIT数字读法方式 value:0 0 自动分析自动分析;1 电报读法;2 数值读法; ALPHA拼音读法方式 value:0 自动分析;1 按拼音读;2 2 没有拼音没有拼音;3 强制字母; ENTER回车段落方式 value:0 自动分析;1 1 段落分割段落分割;2 不是段落; SPACE空格读法方式 value:0 自动分析;1 1 停顿标记停顿标记;2 删除空格; SYMBOL符号读法方式 value:0 0 自动分析自动分析;1 读出符号;2 不读符号; SDELETE 符号删除数量 value:0-32767:0 表示不删除;6 6 value:参数值,与 type 对应。 cid线程环境描述符指针。 返回值: 正常返回 0,否则返回-1。 注释: 此函数必须在某个线程环境中执行,因此必须先执行ttslogon函数。 范例: int cid = ttslogon(); ttsParamSet(DIGIT, 1, 4.21 ttsParamGet 获得当前文本读发格式参数。 语法: int WINAPI ttsParamGet(int type, int * cid); 参数: type文本读法参数类型。 DIGIT数字读法方式 value:0 自动分析;1 电报读法;2 数值读法; ALPHA拼音读法方式 value:0 自动分析;1 按拼音读;2 没有拼音;3 强制字母; ENTER回车段落方式 value:0 自动分析;1 段落分割;2 不是段落; SPACE空格读法方式 value:0 自动分析;1 停顿标记;2 删除空格; SYMBOL符号读法方式 value:0 自动分析;1 读出符号;2 不读符号; SDELETE 符号删除数量 value:0-32767:0 表示不删除; cid线程环境描述符指针。 返回值: 返回相应 type 的 value 值。 注释: 此函数必须在某个线程环境中执行,因此必须先执行ttslogon函数。 范例: 无。 4.22 ttsChangeWaveFmt PCM 数据转换格式。 语法: int WINAPI ttsChangeWaveFmt(char * oldData , int oldLen , char * newData , int newLen , int oldRate , int oldBits , int newRate , int newBits); 参数: oldData原语音数据缓冲。 oldLen原语音数据缓冲的长度(单位:Byte 字节)。 newData目标语音数据缓冲。 newLen目标语音数据缓冲的大小(最大可用空间,单位:Byte 字节)。 oldRate原语音数据的采样率(单位:Hz 赫兹)。 oldBits原语音数据的量化精度(单位:bit 位)。 newRate目标语音数据的采样率(单位:Hz 赫兹)。 newBits目标语音数据的量化精度(单位:bit 位)。 返回值: 实际转换后目标语音数据的长度(单位:Byte 字节)。 注释: 该函数只处理量化精度为 16 位的数据,既 oldBits=newBits=16,实际上只转换 PCM 的 采样率。 范例: int x = ttsChangeWaveFmt(buff1,i,buff2,1000000,16000,16,8000,16); /将 buff1 中 16000Hz 16Bit 的波形数据转换成 buff2 中的 8000Hz 16Bit 数据,目标数 据长度返回 x。 4.23 ttsPcmToWave PCM 数据转换成 WAVE 文件语音数据格式。 语法: void WINAPI ttsPcmToWave(char * PcmData, char * WavData, int snLength, int Samples, int Bits); 参数: PcmDataPCM 波形数据缓存。 WavDataWAVE 波形数据缓存。 snLength波形数据的长度(单位: Byte 字节) Samples波形数据的采样率(单位:Hz 赫兹)。 Bits波形数据的量化精度(单位:bit 位)。 返回值: 无。 注释: 采样率和量化精度不变。 范例: ttsPcmToWave(buff1, buff2, nLen, 16000, 16); /将 buff1 中的 PCM 波形数据,转换成 Wave 格式数据,放于 Buff2 中。 /采样频率 16000Hz,量化精度是 16Bit。结果数据长度是 nLen+44 4.24 ttspcmtoalaw 将 16bits 的 pcm 数据转化为 8bits 的 A-law 格式。 语法: int WINAPI ttspcmtoalaw(void * olddata, int len, const void * newdata, int newlen); 参数: olddatapcm 数据的缓冲区指针 lenpcm 数据的长度(单位:Byte 字节) newdataA-law 数据的缓冲区指针 newlenA-law 数据的缓冲区的长度(单位:Byte 字节) 返回值: 成功返回 A-law 数据长度,失败返回-1。 注释: 采样率不变。 范例: int x = ttspcmtoalaw (buff1, len1, buff2, len2); 4.25 ttspcmtoulaw 将 16bits 的 pcm 数据转化为 8bits 的 U-law 格式。 语法: int WINAPI ttspcmtoulaw(void * olddata, int len, const void * newdata, int newlen); 参数: olddatapcm 数据的缓冲区指针 lenpcm 数据的长度(单位:Byte 字节) newdataU-law 数据的缓冲区指针 newlenU-law 数据的缓冲区的长度(单位:Byte 字节) 返回值: 成功返回新数据长度,失败返回-1。 注释: 采样率不变。 范例: int x = ttspcmtoalaw (buff1, len1, buff2, len2); 4.26 ttspcm16to8 将 16 位量化精度的 PCM 数据改为 8 位。 语法: int WINAPI ttspcm16to8(const void * olddata, int len, const void * newdata, int newlen); 参数: olddata量化精度为 16bits 的 pcm 数据。 Len16bits 的 pcm 数据的长度(单位:Byte 字节) Newdata量化精度为 8bits 的 pcm 数据。 Newlen缓冲区的长度(单位:Byte 字节) 。 返回值: 成功返回新数据长度,失败返回-1。 注释: 无。 范例: int x = ttspcm16to8(buff1, len1, buff2, len2); 4.27 ttspcm8to16 将 8 位量化精度的 PCM 数据改为 16 位。 语法: int WINAPI ttspcm8to16(const void * olddata, int len, const void * newdata, int newlen); 参数: olddata量化精度为 8bits 的 pcm 数据。 Len8bits 的 pcm 数据的长度(单位:Byte 字节) 。 Newdata量化精度为 16bits 的 pcm 数据。 Newlen缓冲区的长度(单位:Byte 字节) 。 返回值: 成功返回新数据长度,失败返回-1。 注释: 无。 范例: int x = ttspcm8to16(buff1, len1, buff2, len2); 4.28 ConvertToVox8 将波形文件从 16bits 的 PCM 格式转换为 8KHz 采样率 8bits 的 Vox 格式, 便于电话语音 卡(dilogic 卡)的播放。 语法: int WINAPI ConvertToVox8(int Samples , short * iDataBuffer , int DataLen , char * cVoxDataBuffer); 参数: Samples当前 PCM 格式语音数据的采样率(单位:Hz 赫兹)。 iDataBuffer当前的 PCM 语音数据。 DataLen语音数据的长度(单位:short)。 cVoxDataBuffer转换后的 Vox8 格式的语音数据。 返回值: 转换后 Vox8 类型的语音数据的长度,以 Byte(字节)为单位。 注释: 上面通过 ttsPlay 后在 waveParam 结构里面的波形数据以及长度都是以 Byte(字节)为 单位的,所以在调用该函数的时候, 注意单位的转换。 范例: int x = ConvertToVox8(16000, buff1, nLen, buff2); /nLen(short)为原语音数据长度。 4.29 ConvertToVox 将波形文件从 16bits 的 PCM 格式转换为 8bits 的 Vox 格式, 便于电话语音卡(dilogic 卡) 的播放语法: int WINAPI ConvertToVox(int Samples , short * iDataBuffer , int DataLen , char * cVoxDataBuffer); 参数: SamplesPCM 格式语音数据的采样率(单位:Hz 赫兹)。 iDataBufferPCM 语音数据。 DataLen语音数据的长度(单位:short)。 nVoxSamples 需要转换成的 Vox 格式的采样率(单位:Hz 赫兹) cVoxDataBuffer转换后的 Vox 格式的语音数据。 返回值: 转换后 Vox 类型的语音数据的长度,以 Byte(字节)为单位。 注释: 上面通过 ttsPlay 后在 waveParam 结构里面的波形数据以及长度都是以 Byte(字节)为 单位的,所以在调用该函数的时候, 注意单位的转换。 范例: char buff11000000,buff21000000; int x=ConvertToVox(16000,buff1,i,buff2);/i 为原语音数据以 short 为/单位 的数据的长度。 4.30 ttsWriteToFile 将 pcm 波形数据按规定的格式写入到文件。 语法: BOOL WINAPI ttsWriteToFile(char * snData , int snLength , int Samples , int Bits , char * lpszFileName , BOOL bAppend , UINT nFormat); 参数: snDatapcm 语音数据。 snLengthpcm 语音数据的长度(单位:Byte 字节)。 Samplespcm 语音数据的采样率(单位:Hz 赫兹)。 Bitspcm 语音数据的量化精度(单位:bit 位)。 lpszFileName文件名。 BAppend是否覆盖以前的语音数据。如果 bAppend=FALSE 覆盖; bAppend=TRUE不覆盖,在当前语音文件后面添加新的语音数据。 nFormat需要生成的语音文件的格式,其定义如下: WAVE_FMT_WAVE带语音数据文件头格式的文件(普通 Wave 文件)。 WAVE_FMT_PCM不带文件头的纯 PCM 数据文件。 WAVE_FMT_VOXVOX 格式的文件(目前暂不支持该文件格式)。 返回值: 成功返回 TRUE;否则返回 FALSE。 注释: 采样率、量化精度不变。 范例: ttsWriteToFile(buff, i, 16000, 16, filename, FALSE,WAVE_FMT_WAVE); /将 buff 中的波形数据以普通 Wave 文件格式写入到 filename 文件中, /若原有文件存在,则直接覆盖之。 ttsWriteToFile(buff, i, 16000, 16, filename, TRUE,WAVE_FMT_WAVE); /功能同上, /若原有文件存在,则在该文件尾添加新数据。 4.31 ttsWriteToFileEx 将 pcm 波形数据按规定的格式写入到文件,函数内部进行数据格式的变换。 语法: BOOL WINAPI ttsWriteToFileEx(char * snData, int snLength, int Samples, int Bits, int trgSamples, int trgBits, char * lpszFileName, BOOL bAppend, UINT nFormat); 参数: snDatapcm 语音数据。 snLengthpcm 语音数据的长度(单位:Byte 字节)。 Samplespcm 语音数据的采样率(单位:Hz 赫兹)。 Bitspcm 语音数据的量化精度(单位:bit 位)。 trgSampels目标语音数据的采样率(单位:Hz 赫兹) trgBits目标语音数据的量化精度(单位:Byte 字节) lpszFileName文件名。 BAppend是否覆盖以前的语音数据。如果 bAppend=FALSE 覆盖;bAppe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《网络语言生活的规划与治理:中国语言政策研究》硕士研究生专业课程教案
- 花店送货方案范本
- 初三化学中考一轮复习教案:基于核心素养的酸、碱、盐系统重构与实验探究
- 商场老街改造项目方案范本
- 2026年煤矿行业从业人员安全生产模拟题+参考答案解析
- 2026年城建档案管理员岗位培训综合测试题及答案
- 2025-2026学年浙教版七年级下册数学期末专项复习题-因式分解(含答案)
- 2026年物流运输合同范本含保险及时效条款
- 2026年影视制作项目合同协议范本含版权归属
- 2026年物流行业员工岗位调动协议模板
- GB/T 30413-2013嵌入式LED灯具性能要求
- GB/T 28603-2012无水氟化氢生产技术规范
- 建筑通风系统概述课件
- 食源性疾病个案调查登记表
- 蒸汽吹灰器技术协议(能源化工有限公司热动力站蒸汽吹灰器)
- 样板间施工专项施工方案
- 篮球规则介绍课件
- 病危通知书格式模板(精选6篇)
- JJF 1076-2020-数字式温湿度计校准规范-(高清现行)
- 江河堤防险情应急抢险救援技术指导书
- 蚓激酶活性测定方法
评论
0/150
提交评论