SinoSonicSDK用戶手冊_第1頁
SinoSonicSDK用戶手冊_第2頁
SinoSonicSDK用戶手冊_第3頁
SinoSonicSDK用戶手冊_第4頁
SinoSonicSDK用戶手冊_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、語音合成開發(fā)包SDK V4.10產(chǎn)品使用手冊北京炎黃新星網(wǎng)絡(luò)科技有限公司前 言“炎黃之聲”(SINOSONIC)語音合成技術(shù),可以將文本轉(zhuǎn)換為自然、流暢的語音進行輸出?!把S之聲”(SINOSONIC)是炎黃新星具有世界領(lǐng)先水平并擁有自主知識產(chǎn)權(quán)的核心技術(shù)。它依托于清華大學(xué)“人機交互與媒體集成研究所”20余年的研究成果,采用最先進的語音算法,在國內(nèi)外語音會議上屢獲殊榮。“炎黃之聲”(SINOSONIC)采用了目前世界最先進的數(shù)據(jù)驅(qū)動技術(shù),使用精心設(shè)計的語音語料庫進行錄音,得到的系統(tǒng)體現(xiàn)了流暢、自然的語言特性,發(fā)音效果自然、親切,用戶樂于接受?!把S之聲”(SINOSONIC)在國內(nèi)首次運用“基

2、于神經(jīng)網(wǎng)絡(luò)的韻律模型”,使系統(tǒng)具有智能化的學(xué)習功能,能夠自動記憶、自我培訓(xùn),靈活進行語音、語調(diào)的選擇,讓系統(tǒng)能夠逐漸模擬人的發(fā)音效果?!把S之聲”(SINOSONIC)是國內(nèi)唯一一家獲得國家級發(fā)明專利的語音合成技術(shù),“讓電腦說中國話,用中國人自己的專利”是整個研發(fā)團隊不懈的追求!“炎黃之聲”(SINOSONIC)作為世界級的語音合成技術(shù),運用了最先進的語音算法和模型,其核心技術(shù)包括:基于神經(jīng)網(wǎng)絡(luò)的韻律模型、基于HMM的語音切分和選取模型、基于HMM的多語種文本分析和語義分析、中英文語料庫設(shè)計和標注、語音分析工具的研制等。目 錄 TOC o 1-3 h z HYPERLINK l _Toc460

3、52999 前 言 PAGEREF _Toc46052999 h 1 HYPERLINK l _Toc46053000 第一章 產(chǎn)品介紹 PAGEREF _Toc46053000 h 4 HYPERLINK l _Toc46053001 1.1產(chǎn)品功能 PAGEREF _Toc46053001 h 4 HYPERLINK l _Toc46053002 1.2產(chǎn)品特點 PAGEREF _Toc46053002 h 4 HYPERLINK l _Toc46053003 1.3產(chǎn)品應(yīng)用 PAGEREF _Toc46053003 h 4 HYPERLINK l _Toc46053004 第二章 產(chǎn)品安

4、裝及卸載 PAGEREF _Toc46053004 h 6 HYPERLINK l _Toc46053005 2.1運行環(huán)境 PAGEREF _Toc46053005 h 6 HYPERLINK l _Toc46053006 2.2安裝過程 PAGEREF _Toc46053006 h 6 HYPERLINK l _Toc46053007 2.3卸載過程 PAGEREF _Toc46053007 h 10 HYPERLINK l _Toc46053008 第三章 目錄結(jié)構(gòu)及文件說明 PAGEREF _Toc46053008 h 17 HYPERLINK l _Toc46053009 3.1目錄

5、結(jié)構(gòu) PAGEREF _Toc46053009 h 17 HYPERLINK l _Toc46053010 3.2文件說明 PAGEREF _Toc46053010 h 17 HYPERLINK l _Toc46053011 第四章 函數(shù)使用說明 PAGEREF _Toc46053011 h 18 HYPERLINK l _Toc46053012 4.1函數(shù)列表 PAGEREF _Toc46053012 h 18 HYPERLINK l _Toc46053013 4.2 ttsInit PAGEREF _Toc46053013 h 19 HYPERLINK l _Toc46053014 4.3

6、 ttsClose PAGEREF _Toc46053014 h 19 HYPERLINK l _Toc46053015 4.4 ttslogon PAGEREF _Toc46053015 h 19 HYPERLINK l _Toc46053016 4.5 ttslogdown PAGEREF _Toc46053016 h 20 HYPERLINK l _Toc46053017 4.6 ttsPlay PAGEREF _Toc46053017 h 20 HYPERLINK l _Toc46053018 4.7 ttsGenderSet PAGEREF _Toc46053018 h 23 HYP

7、ERLINK l _Toc46053019 4.8 ttsGenderGet PAGEREF _Toc46053019 h 23 HYPERLINK l _Toc46053020 4.9 ttsSpeedSet PAGEREF _Toc46053020 h 24 HYPERLINK l _Toc46053021 4.10 ttsSpeedGet PAGEREF _Toc46053021 h 24 HYPERLINK l _Toc46053022 4.11 cttsPitchSet PAGEREF _Toc46053022 h 25 HYPERLINK l _Toc46053023 4.12 c

8、ttsPitchGet PAGEREF _Toc46053023 h 25 HYPERLINK l _Toc46053024 4.13 cttsSpeedSet PAGEREF _Toc46053024 h 26 HYPERLINK l _Toc46053025 4.14 cttsSpeedGet PAGEREF _Toc46053025 h 26 HYPERLINK l _Toc46053026 4.15 ettsSpeedSet PAGEREF _Toc46053026 h 26 HYPERLINK l _Toc46053027 4.16 ettsSpeedGet PAGEREF _Toc

9、46053027 h 27 HYPERLINK l _Toc46053028 4.17 ttsGBorBig5 PAGEREF _Toc46053028 h 27 HYPERLINK l _Toc46053029 4.18 ttsLanguageSet PAGEREF _Toc46053029 h 28 HYPERLINK l _Toc46053030 4.19 ttsLanguageGet PAGEREF _Toc46053030 h 29 HYPERLINK l _Toc46053031 4.20 ttsParamSet PAGEREF _Toc46053031 h 29 HYPERLIN

10、K l _Toc46053032 4.21 ttsParamGet PAGEREF _Toc46053032 h 30 HYPERLINK l _Toc46053033 4.22 ttsChangeWaveFmt PAGEREF _Toc46053033 h 30 HYPERLINK l _Toc46053034 4.23 ttsPcmToWave PAGEREF _Toc46053034 h 31 HYPERLINK l _Toc46053035 4.24 ttspcmtoalaw PAGEREF _Toc46053035 h 31 HYPERLINK l _Toc46053036 4.25

11、 ttspcmtoulaw PAGEREF _Toc46053036 h 32 HYPERLINK l _Toc46053037 4.26 ttspcm16to8 PAGEREF _Toc46053037 h 32 HYPERLINK l _Toc46053038 4.27 ttspcm8to16 PAGEREF _Toc46053038 h 33 HYPERLINK l _Toc46053039 4.28 ConvertToVox8 PAGEREF _Toc46053039 h 33 HYPERLINK l _Toc46053040 4.29 ConvertToVox PAGEREF _To

12、c46053040 h 34 HYPERLINK l _Toc46053041 4.30 ttsWriteToFile PAGEREF _Toc46053041 h 35 HYPERLINK l _Toc46053042 4.31 ttsWriteToFileEx PAGEREF _Toc46053042 h 35 HYPERLINK l _Toc46053043 第五章 UserMan.exe使用說明 PAGEREF _Toc46053043 h 37 HYPERLINK l _Toc46053044 5.1添加漢字單詞 PAGEREF _Toc46053044 h 37 HYPERLINK

13、 l _Toc46053045 5.2修改漢字單詞 PAGEREF _Toc46053045 h 38 HYPERLINK l _Toc46053046 5.3刪除漢字單詞 PAGEREF _Toc46053046 h 39 HYPERLINK l _Toc46053047 5.4排序漢字單詞 PAGEREF _Toc46053047 h 39 HYPERLINK l _Toc46053048 5.5添加英文字符串 PAGEREF _Toc46053048 h 39 HYPERLINK l _Toc46053049 5.6修改英文字符串 PAGEREF _Toc46053049 h 40 HY

14、PERLINK l _Toc46053050 5.7刪除英文字符串 PAGEREF _Toc46053050 h 41 HYPERLINK l _Toc46053051 5.8排序英文字符串 PAGEREF _Toc46053051 h 41 HYPERLINK l _Toc46053052 5.9重新裝入用戶詞典 PAGEREF _Toc46053052 h 41 HYPERLINK l _Toc46053053 5.10保存用戶詞典 PAGEREF _Toc46053053 h 41 HYPERLINK l _Toc46053054 5.11問題解答 PAGEREF _Toc4605305

15、4 h 42 HYPERLINK l _Toc46053055 第六章 范例 PAGEREF _Toc46053055 h 43 HYPERLINK l _Toc46053056 聯(lián)系方式 PAGEREF _Toc46053056 h 44第一章 產(chǎn)品介紹語音合成開發(fā)包,充分運用“炎黃之聲”語音合成技術(shù),為系統(tǒng)集成商、軟件開發(fā)商提供了完備的接口函數(shù)和編程實例,使用戶能夠靈活的進行調(diào)用,并集成到其它應(yīng)用系統(tǒng)中。目前,炎黃新星已經(jīng)成功推出了SDK V1.0、SDK V2.0、SDK V2.1、SDK V3.0、SDK V3.2、SDK V4.1等多個版本,其中SDK V1.0成功嵌入在漢王公司的產(chǎn)

16、品中,目前使用用戶已經(jīng)達到百萬戶。語音合成開發(fā)包SDKV4.1是炎黃新星最新推出的產(chǎn)品,它與其它幾個版本相比,在產(chǎn)品特點、功能、性能方面產(chǎn)生了質(zhì)的飛躍。1.1產(chǎn)品功能系統(tǒng)可提供連續(xù)的、高自然度和高清晰的合成語音。內(nèi)嵌具有自主版權(quán)的連續(xù)英文語音合成系統(tǒng)。自動識別并處理GB、GBK和BIG5字符集。能正確處理漢語中的標點、數(shù)字、運算符等。支持計算機內(nèi)置聲卡及多種電話語音卡。提供標準的程序函數(shù)接口,可方便地進行二次開發(fā)。提供放音時暫停、恢復(fù)、終止等各項操作接口。提供語音字典維護功能,用戶可根據(jù)實際情況添加、刪除、更改詞庫中某些詞或特殊字符的發(fā)音。炎黃英文或微軟英文用戶可自選。1.2產(chǎn)品特點國內(nèi)首家采

17、用神經(jīng)網(wǎng)絡(luò)韻律模型,使系統(tǒng)具有自我學(xué)習、自我培訓(xùn)的智能功能,選音準確度大大提高。采用長句錄音,語言的自然度得到了提高。音庫采用中央廣播電臺的主任級播音員錄音。接口API支持多線程開發(fā),大大提高系統(tǒng)運行效率。中英文語音合成系統(tǒng)都具有自主版權(quán),中英文混讀效果好。1.3產(chǎn)品應(yīng)用SinoSonic SDK Version 4.1語音合成開發(fā)包的應(yīng)用可包括:自動聲訊專利查詢證券代理電話銀行CALL CENTERInternet信息的有聲傳送第二章 產(chǎn)品安裝及卸載運行環(huán)境主機處理器:PIII500及以上主機內(nèi)存:256MB操作系統(tǒng):Windows9x、WindowsNT4.x、Windows20002.2

18、安裝過程不同Windows環(huán)境下的安裝方式大致相似:第一步:將安裝光盤放入光驅(qū)內(nèi),軟件會自動運行光盤中的安裝程序,安裝程序啟動后會出現(xiàn)炎黃之聲SDK V4.1語音合成系統(tǒng)的安裝界面,如下圖如不能自啟動,請運行光盤中的setup.exe程序。第二步:點擊“下一步”按鈕,進入安裝許可協(xié)議界面。點擊“是”進入輸入注冊信息界面輸入產(chǎn)品的序列號,該序列號可以在安裝光盤的SN.TXT文件中找到。輸入完序列號,點擊“下一步”進入選擇安裝路徑界面。選擇完安裝路徑后,點擊“下一步”進入選擇安裝類型界面。選擇完安裝類型,點擊“下一步”進入選擇安裝程序文件夾界面。輸入新的文件夾名稱,也可以使用系統(tǒng)默認文件名,點擊“

19、下一步”按鈕開始拷貝文件,拷貝完文件后,出現(xiàn)安裝完成頁面。點擊“完成”按鈕,安裝完成。注意: 如在 Windows NT 環(huán)境下用戶必須具備 Administrator 的使用權(quán)限, 安裝完畢后必須重新啟動系統(tǒng).第三步:安裝軟件狗A、首先關(guān)閉計算機。B、然后將軟件狗(有并口和USB口兩種)插在并口或USB口上。C、啟動計算機。注意:在Windows NT環(huán)境中一定要以Administrator身份進入系統(tǒng)。D、如果是第一次安裝USB硬件,系統(tǒng)會提示查找到新硬件, 并自動安裝對新硬件的驅(qū)動。安裝光盤中帶有USB硬件的驅(qū)動程序。2.3卸載過程卸載順序:首先卸載軟件狗,然后卸載USB驅(qū)動程序,最后卸

20、載“炎黃之聲SDKV4.1正式版”軟件。一、Windows2000下的卸載方法:第一步:卸載軟件狗驅(qū)動程序:點擊Windows“開始”菜單中的“運行”。在運行窗口中輸入s3_inst.exe /u命令行,點擊“確認”按鈕即可。注: 如在 Windows NT 環(huán)境下用戶必須具備 Administrator 的使用權(quán)限, 卸載完畢后也需要重新啟動系統(tǒng). 第二步: 卸載USB驅(qū)動程序:打開“開始菜單設(shè)置控制面板”頁面。雙擊“添加/刪除硬件”圖標。然后根據(jù)提示單擊下一步。在“選擇您想卸載的設(shè)備”中,選中“USB Root Hub”。點擊“下一步”按鈕,進入確認卸載界面。選擇“是,想卸載此設(shè)備(Y)”

21、,點擊“下一步”按鈕完成卸載。第三步:卸載炎黃之聲SDKV4.1正式版程序:打開“開始菜單設(shè)置控制面板”頁面。雙擊“添加/刪除程序”圖標。找到并選中“炎黃之聲SDKV4.1正式版”,點擊選中欄中右下方會的“更改/刪除”按鈕,進入炎黃之聲SDKV4.1正式版安裝維護程序界面。選中“刪除”項,點擊“下一步”按鈕,進入確認刪除界面。點擊“確認”按鈕卸載完成。二、Windows98下的卸載方法:第一步:卸載軟件狗驅(qū)動程序:點擊Windows“開始”菜單中的“運行”。在運行窗口中輸入s3_inst.exe /u命令行,點擊“確認”按鈕即可。第二步: 卸載USB驅(qū)動程序:開始菜單設(shè)置控制面板雙擊“系統(tǒng)”。

22、選擇“設(shè)備管理器”Tab,在列表框中選中“通用串行總線控制器”下的“USB Root Hub”,單擊“刪除”按鈕。然后根據(jù)提示卸載即可。第三步:卸載炎黃之聲SDKV4.1正式版程序:開始菜單設(shè)置控制面板雙擊“添加/刪除程序”選擇“安裝/卸載”Tab,在列表框中選中“炎黃之聲SDKV4.1正式版”,單擊“添加/刪除”按鈕。第三章 目錄結(jié)構(gòu)及文件說明3.1目錄結(jié)構(gòu) Data: 該目錄中放置的是軟件所需的音庫和詞庫內(nèi)容和UserMan.exe。 Bin: 該目錄中放置的是TTS所需的動態(tài)鏈接庫和SSPlay.exe(語音合成演示程序)。 SDK_Demo : 該目錄下放置的是接口API使用的例子程序

23、。 Help : 該目錄下放置的是幫助文件。 Driver: 該目錄下放置的是軟件狗的驅(qū)動。3.2文件說明 UserMan.exe 是用來編寫用戶詞典的,可以擴大TTS合成系統(tǒng)的詞庫量。具體幫助請看 BinUSERMAN.HLP. SSPlay.exe 是用來檢查合成效果的測試程序。 本軟件共提供一套API開發(fā)接口: TTS SDK API接口,用來開發(fā)合成系統(tǒng)。例子程序在 SDK_Demo中, 需要SDK_Demoectts.h和SDK_Demoectts.lib兩個文件。 API的使用幫助請見 HelpSINOSONIC_SDK_V4.10用戶手冊.doc。第四章 函數(shù)使用說明4.1函數(shù)列

24、表本軟件包包括如下接口函數(shù):ttsInit初始化TTS合成系統(tǒng)。ttsClose關(guān)閉TTS合成系統(tǒng)。ttslogon 創(chuàng)建語音合成的線程環(huán)境。ttslogdown 關(guān)閉語音合成的線程環(huán)境。ttsPlay將文本合成語音數(shù)據(jù)。ttsGenderSet設(shè)置TTS合成系統(tǒng)說話人的性別。ttsGenderGet獲得TTS合成系統(tǒng)說話人的性別。ttsSpeedSet設(shè)置TTS合成系統(tǒng)語速。ttsSpeedGet獲得TTS合成系統(tǒng)語速。cttsPitchSet設(shè)置漢語TTS合成系統(tǒng)音調(diào)。cttsPitchGet獲得漢語TTS合成系統(tǒng)音調(diào)。cttsSpeedSet設(shè)置漢語TTS合成系統(tǒng)語速。cttsSpeed

25、Get獲得漢語TTS合成系統(tǒng)語速。ettsSpeedSet設(shè)置英語TTS合成系統(tǒng)語速。ettsSpeedGet獲得英語TTS合成系統(tǒng)語速。ttsGBorBig5漢字編碼識別。ttsLanguageSet設(shè)置BIG5碼和國標碼。ttsLanguageGet獲得編碼設(shè)置。ttsParamSet設(shè)置文本讀法格式參數(shù)。ttsParamGet獲得文本讀法格式參數(shù)。ttsChangeWaveFmt轉(zhuǎn)換語音數(shù)據(jù)格式。ttsPcmToWavePCM數(shù)據(jù)轉(zhuǎn)成WAV數(shù)據(jù)。ttspcmtoalawPCM數(shù)據(jù)轉(zhuǎn)成A-law數(shù)據(jù)。ttspcmtoulawPCM數(shù)據(jù)轉(zhuǎn)成U-law數(shù)據(jù)。ttspcm16to816位PCM數(shù)

26、據(jù)轉(zhuǎn)成8位PCM數(shù)據(jù)。ttspcm8to168位PCM數(shù)據(jù)轉(zhuǎn)成16位PCM數(shù)據(jù)。ConvertToVox8將PCM格式語音數(shù)據(jù)轉(zhuǎn)換成Vox(8000采樣率)格式。ConvertToVox將PCM格式語音數(shù)據(jù)轉(zhuǎn)換成Vox格式。ttsWriteToFile將緩存中的語音數(shù)據(jù)寫入文件。ttsWriteToFileEx將緩存中的語音數(shù)據(jù)寫入到文件,函數(shù)內(nèi)部進行數(shù)據(jù)格式的變換。4.2 ttsInit初始化TTS合成系統(tǒng)。語法:BOOL WINAPI ttsInit(char * strDataPath,BOOL bReadIntoMem);參數(shù):strDataPath合成系統(tǒng)數(shù)據(jù)文件路徑。bReadIn

27、toMem音庫是否讀入內(nèi)存,TRUE讀入;FALSE不讀入。返回值:成功返回TRUE,否則返回FALSE。注釋:使用語音合成系統(tǒng)時,必須先調(diào)用本函數(shù)初始化系統(tǒng),退出時應(yīng)調(diào)用關(guān)閉函數(shù)。范例:參見ttsPlay。4.3 ttsClose關(guān)閉TTS合成系統(tǒng)。語法:BOOL WINAPI ttsClose();參數(shù):無。返回值:成功返回TRUE;否則返回FALSE。注釋:使用語音合成系統(tǒng)時,必須先調(diào)用初始化函數(shù),退出時應(yīng)調(diào)用本函數(shù)。范例:參見ttsPlay。4.4 ttslogon創(chuàng)建語音合成的線程環(huán)境。 語法:int WINAPI ttslogon(); 參數(shù): 無。 返回值:返回的是線程環(huán)境描述符

28、,正常返回大于等于0的整數(shù),返回-1為失敗。 注釋:在正確執(zhí)行ttsInit函數(shù)后調(diào)用此函數(shù),ttsPlay等函數(shù)必須在線程環(huán)境中運行,也就是說只有成功調(diào)用此函數(shù)后才能調(diào)用ttsPlay等函數(shù)。 范例:參見ttsPlay。4.5 ttslogdown關(guān)閉語音合成的線程環(huán)境。 語法:BOOL WINAPI ttslogdown(int *cid); 參數(shù):cid線程環(huán)境描述符指針。 返回值:正常返回為TRUE,失敗為FALSE。 注釋:當線程調(diào)用結(jié)束后,必須調(diào)用這個函數(shù)來釋放為合成分配的線程環(huán)境資源。 范例:參見ttsPlay。4.6 ttsPlay將文本合成語音數(shù)據(jù)。語法:char * WIN

29、API ttsPlay(char * pStrText, TWAVEPARAM * pWaveParam, TTXTPARAM * pTxtParam, TTHPARAM * pTHParam, TCTRLPARAM * pCtrlParam,int * cid);參數(shù):pStrText待合成文本。pWaveParam合成語音數(shù)據(jù)參數(shù),返回合成的語音數(shù)據(jù)。參數(shù)結(jié)構(gòu):typedef struct waveParamchar *pData;輸入:合成語音數(shù)據(jù)緩存指針。unsigned long nLength;輸入:緩存大??;返回:語音數(shù)據(jù)實際長度(單位:Byte字節(jié))。intnSamplesPe

30、rSec;返回:語音數(shù)據(jù)采樣率(單位:Hz赫茲)。intnBitsPerSample;返回:語音數(shù)據(jù)量化精度(單位:Bit位)。TWAVEPARAM, * PWAVEPARAM;pTxtParam返回拼音信息和切分的文本信息。一般用戶可設(shè)成NULL。參數(shù)結(jié)構(gòu):typedef struct txtParamchar *pPinyin;返回的拼音信息。char *pSepText;返回的文本切分信息。TTXTPARAM, * PTXTPARAM;pTHParam返回TalkingHead參數(shù),用于說話人人臉的合成。一般用戶可設(shè)成NULL。參數(shù)結(jié)構(gòu):typedef struct thParamcha

31、r *pPinyin;返回的拼音信息。Int *pPauses;返回每個音節(jié)前的停頓時長(單位:ms毫秒)。Int *pDurations;返回每個音節(jié)的時長信息(單位:ms毫秒)。intnSyllNumber;返回音節(jié)個數(shù)。TTHPARAM, * PTHPARAM;pCtrlParam上下文控制參數(shù),用于判斷是否使用英文,是否句首,句尾只需設(shè)定初始值,之后由程序自動設(shè)定。參數(shù)結(jié)構(gòu):typedef struct ctrlParamBOOLbEnglish;當前文本中英文狀態(tài)。TRUE為英文,F(xiàn)ALSE為中文。BOOLbForced;與bEnglish結(jié)合使用,TRUE強制,F(xiàn)ALSE自動分析。

32、BOOLbStart;是否句首,TRUE為句首。BOOLbEnd;是否句尾,TRUE為句尾。TCTRLPARAM, * PCTRLPARAM; cid線程環(huán)境描述符指針。返回值:下次需要合成的文本位置,如果文本處理完畢則指向結(jié)尾的“0”。注釋:其中pStrText,pCtrlParam,PWaveParam不能為空。pTxtParam,pTHParam 相互獨立,而且可以為NULL,當其為NULL時,則不返回該參數(shù)。bEnglish、bForced兩參數(shù)聯(lián)合使用,其值決定了遇到對于某些可以按照中文閱讀也可以按照英文閱讀的情況(比如:英文大寫字母、英文縮略語等)時是使用漢語發(fā)音還是轉(zhuǎn)換到英文合成

33、系統(tǒng)。注意:所有的緩沖區(qū)空間,必須在外部分配。ttsPlay必須在某個線程環(huán)境中執(zhí)行,因此必須先執(zhí)行ttslogon函數(shù)。TtsPlay調(diào)用返回是按句進行的,所以需要反復(fù)調(diào)用。注意調(diào)用ttsPlay,TWAVEPARAM.nLength是輸出的語音數(shù)據(jù)長度,故循環(huán)調(diào)用時該參數(shù)需要重新賦值。生成的語音數(shù)據(jù)是16000Hz、16Bits的PCM數(shù)據(jù)。本版本英文支持炎黃英文,也可以使用微軟英文,有關(guān)微軟英文的安裝參見有關(guān)手冊,本版本支持微軟SAPI5.1版本。選擇使用哪個英文系統(tǒng),在Datayh_set.ini中設(shè)置,出廠默認使用炎黃英文,如果是微軟英文,修改Datayh_set.ini中有關(guān)內(nèi)容。

34、如:最后一行“CurrentGroup= YanHuang”使用炎黃英文。如:最后一行“CurrentGroup= Microsoft_woman”使用微軟SAPI5.1的Mary語音。范例:/TTS API定義#inclue “ectts.h” /系統(tǒng)初始化。ttsInit(“Data”,0);/系統(tǒng)音庫所在路徑:“Data”;/指示音庫不裝入內(nèi)存中。 /以下是線程處理 /以下代碼為某個用戶線程中的線程代碼int cid = ttslogon();/創(chuàng)建語音合成的線程環(huán)境。ttsGenderSet(FALSE,&cid);/合成系統(tǒng)設(shè)置為女聲。ttsSpeedSet(4, &cid);/合成

35、系統(tǒng)設(shè)置為正常語速。Char * buff = (char *)malloc(1024*1024);/合成參數(shù)設(shè)置TWAVEPARAM twave;Twave.pData = buff;/語音數(shù)據(jù)緩存指針。/文本參數(shù)設(shè)置TCTRLPARAM tctr;tctr.bEnglish = FALSE;/中文狀態(tài)tctr.bForced = TRUE;/和bEnglish配合,遇到英文縮略語等按照中文閱讀。tctr.bStart = TRUE;/句首,第一次調(diào)用設(shè)成TRUEtctr.bEnd = TRUE;/句尾,第一次調(diào)用設(shè)成TRUEchar playbuff256 = “華意語音計算研究中心。中英

36、文TTS合成系統(tǒng)?!?char * playptr;/用于ttsPlay()循環(huán)playptr = playbuff;while(playptr & *playptr)Twave.nLength = 1024*1024;/注意每次調(diào)用ttsPlay()前賦該參數(shù)。playptr = ttsPlay(playptr, &twave, NULL, NULL, &tctr, &cid);/進行合成/語音數(shù)據(jù)在twave.pData中,twave.nLength數(shù)據(jù)長度。 free(buff);ttslogdown(&cid); /以上線程處理結(jié)束 /以下為系統(tǒng)結(jié)束時代碼ttsClose();4.7

37、ttsGenderSet設(shè)置TTS合成系統(tǒng)說話人的性別。語法:BOOL WINAPI ttsGenderSet(BOOL bMale, int * cid);參數(shù):bMaleTRUE為男聲;FALSE為女聲。cid線程環(huán)境描述符指針。返回值:正常返回TRUE;否則返回FALSE。注釋:此函數(shù)必須在某個線程環(huán)境中執(zhí)行,因此必須先執(zhí)行ttslogon函數(shù)。范例: int cid = ttslogon();ttsGenderSet(FALSE, &cid);4.8 ttsGenderGet獲得當前TTS合成系統(tǒng)說話人的性別。語法:BOOL WINAPI ttsGenderGet(int * cid)

38、;參數(shù):bMaleTRUE為男聲;FALSE為女聲。cid線程環(huán)境描述符指針。返回值:返回TRUE為男聲;返回FALSE為女聲。注釋:無。范例: int cid = ttslogon();BOOL b = ttsGenderGet(&cid);4.9 ttsSpeedSet設(shè)置TTS合成系統(tǒng)語速。語法:BOOL WINAPI ttsSpeedSet(int speed, int * cid);參數(shù):speed0-9之間,0為最慢,超過此范圍,自動設(shè)置為相應(yīng)的限值。標準速度為4。cid線程環(huán)境描述符指針。返回值:正常返回TRUE;否則返回FALSE。注釋:此函數(shù)必須在某個線程環(huán)境中執(zhí)行,因此必須

39、先執(zhí)行ttslogon函數(shù)。范例: int cid = ttslogon();ttsSpeedSet(4, &cid);4.10 ttsSpeedGet獲得當前TTS合成系統(tǒng)語速。語法:int WINAPI ttsSpeedGet(int * cid);參數(shù):cid線程環(huán)境描述符指針。返回值:返回TTS合成系統(tǒng)語速,返回值在0-9之間,0為最慢。注釋:當中文和英文語速不一致時,返回中文的合成語速。此函數(shù)必須在某個線程環(huán)境中執(zhí)行,因此必須先執(zhí)行ttslogon函數(shù)。范例: int cid = ttslogon();int x = ttsSpeedGet(&cid);4.11 cttsPitchS

40、et設(shè)置中文TTS合成系統(tǒng)音調(diào)。語法:BOOL WINAPI cttsPitchSet(int pitch, int * cid);參數(shù):pitch。0-9之間,0為基頻最低,9最高,超過此范圍,自動設(shè)置為相應(yīng)的限值。標準基頻為5。cid線程環(huán)境描述符指針。返回值:正常返回TRUE;否則返回FALSE。注釋:此函數(shù)必須在某個線程環(huán)境中執(zhí)行,因此必須先執(zhí)行ttslogon函數(shù)。范例: int cid = ttslogon();cttsPitchSet(5, &cid);4.12 cttsPitchGet獲得當前漢語TTS合成系統(tǒng)音調(diào)。語法:int WINAPI cttsPitchGet(int

41、* cid);參數(shù):cid線程環(huán)境描述符指針。返回值:返回漢語TTS合成系統(tǒng)音調(diào)。0-9之間,0為基頻最低,9最高。標準基頻為5。注釋:此函數(shù)必須在某個線程環(huán)境中執(zhí)行,因此必須先執(zhí)行ttslogon函數(shù)。范例: int cid = ttslogon();int x = cttsPitchGet(&cid);4.13 cttsSpeedSet設(shè)置漢語TTS合成系統(tǒng)語速。語法:BOOL WINAPI cttsSpeedSet(int speed, int * cid);參數(shù):speed0-9之間,0為最慢,超過此范圍,自動設(shè)置為相應(yīng)的限值。標準速度為4。 cid線程環(huán)境描述符指針。返回值:正常返回

42、TRUE;否則返回FALSE。注釋:cttsSpeedSet與ttsSpeedSet,以最后調(diào)用的函數(shù)為準。此函數(shù)必須在某個線程環(huán)境中執(zhí)行,因此必須先執(zhí)行ttslogon函數(shù)。范例: int cid = ttslogon();cttsSpeedSet(4, &cid);4.14 cttsSpeedGet獲得漢語TTS合成系統(tǒng)語速。語法:int WINAPI cttsSpeedSet(int * cid);參數(shù):cid線程環(huán)境描述符指針。返回值:返回漢語TTS合成系統(tǒng)語速,返回值在0-9之間,0為最慢。注釋:此函數(shù)必須在某個線程環(huán)境中執(zhí)行,因此必須先執(zhí)行ttslogon函數(shù)。范例: int ci

43、d = ttslogon();int x = cttsSpeedGet(&cid);4.15 ettsSpeedSet設(shè)置英語TTS合成系統(tǒng)語速。語法:BOOL WINAPI ettsSpeedSet(int speed, int * cid);參數(shù):speed0-9之間,0為最慢,超過此范圍,自動設(shè)置為相應(yīng)的限值。標準速度為4。 cid 線程環(huán)境描述符指針。返回值:正常返回TRUE;否則返回FALSE。注釋:ettsSpeedSet與ttsSpeedSet,以最后調(diào)用的函數(shù)為準。此函數(shù)必須在某個線程環(huán)境中執(zhí)行,因此必須先執(zhí)行ttslogon函數(shù)。范例: int cid = ttslogon(

44、);ettsSpeedSet(4, &cid);4.16 ettsSpeedGet獲得英語TTS合成系統(tǒng)語速。語法:int WINAPI ettsSpeedSet(int * cid);參數(shù):cid線程環(huán)境描述符指針。返回值:返回英語TTS合成系統(tǒng)語速,返回值在0-9之間,0為最慢。注釋:此函數(shù)必須在某個線程環(huán)境中執(zhí)行,因此必須先執(zhí)行ttslogon函數(shù)。范例: int cid = ttslogon();int x = ettsSpeedGet(&cid);4.17 ttsGBorBig5判斷漢字編碼。語法:intWINAPI ttsGBorBig5(char * lpText);參數(shù):lpT

45、ext判斷的文本指針。返回值:返回0:判斷不出。返回1:GBK Code。返回2:Big5 Code。注釋:無。范例:switch(ttsGBorBig5(TextBuff)case 0:case 1:ttsLanguageSet(LANGUAGE_CH_GB, &cid);break;case 2:ttsLanguageSet(LANGUAGE_CH_BIG5, &cid);break; 4.18 ttsLanguageSet設(shè)置輸入文本為國標碼還是BIG5碼。語法:WORD WINAPI ttsLanguageSet(WORD lan, int * cid)參數(shù):LANGUAGE_CH_G

46、B國標碼(缺省設(shè)置);LANGUAGE_CH_BIG5big5碼;LANGUAGE_CH_AUTO自動識別。cid線程環(huán)境描述符指針。返回值:無。注釋:此函數(shù)必須在某個線程環(huán)境中執(zhí)行,因此必須先執(zhí)行ttslogon函數(shù)。范例:參見ttsGBorBig5。4.19 ttsLanguageGet獲得當前輸入文本為國標碼還是BIG5碼設(shè)置參數(shù)。語法:WORD WINAPI ttsLanguageGet(int * cid)參數(shù):cid 線程環(huán)境描述符指針。返回值:LANGUAGE_CH_GB國標碼;LANGUAGE_CH_BIG5big5碼;LANGUAGE_CH_AUTO自動識別。注釋:此函數(shù)必須

47、在某個線程環(huán)境中執(zhí)行,因此必須先執(zhí)行ttslogon函數(shù)。范例:無。4.20 ttsParamSet設(shè)置文本讀法格式參數(shù)。語法:int WINAPI ttsParamSet(int type, int value, int * cid);參數(shù):type文本讀法參數(shù)類型。(黑體為缺省設(shè)置)DIGIT數(shù)字讀法方式value:0自動分析;1電報讀法;2數(shù)值讀法;ALPHA拼音讀法方式value:0自動分析;1按拼音讀;2沒有拼音;3強制字母;ENTER回車段落方式value:0自動分析;1段落分割;2不是段落;SPACE空格讀法方式value:0自動分析;1停頓標記;2刪除空格;SYMBOL符號讀法

48、方式value:0自動分析;1讀出符號;2不讀符號;SDELETE符號刪除數(shù)量value:0-32767:0表示不刪除;6value:參數(shù)值,與type對應(yīng)。cid線程環(huán)境描述符指針。返回值:正常返回0,否則返回-1。注釋:此函數(shù)必須在某個線程環(huán)境中執(zhí)行,因此必須先執(zhí)行ttslogon函數(shù)。范例: int cid = ttslogon();ttsParamSet(DIGIT, 1, &cid);4.21 ttsParamGet獲得當前文本讀發(fā)格式參數(shù)。語法:int WINAPI ttsParamGet(int type, int * cid);參數(shù):type文本讀法參數(shù)類型。DIGIT數(shù)字讀法

49、方式value:0自動分析;1電報讀法;2數(shù)值讀法;ALPHA拼音讀法方式value:0自動分析;1按拼音讀;2沒有拼音;3強制字母;ENTER回車段落方式value:0自動分析;1段落分割;2不是段落;SPACE空格讀法方式value:0自動分析;1停頓標記;2刪除空格;SYMBOL符號讀法方式value:0自動分析;1讀出符號;2不讀符號;SDELETE符號刪除數(shù)量value:0-32767:0表示不刪除;cid線程環(huán)境描述符指針。返回值:返回相應(yīng)type的value值。注釋:此函數(shù)必須在某個線程環(huán)境中執(zhí)行,因此必須先執(zhí)行ttslogon函數(shù)。范例:無。4.22 ttsChangeWave

50、FmtPCM數(shù)據(jù)轉(zhuǎn)換格式。語法:int WINAPI ttsChangeWaveFmt(char * oldData , int oldLen , char * newData , int newLen , int oldRate , int oldBits , int newRate , int newBits);參數(shù):oldData原語音數(shù)據(jù)緩沖。oldLen原語音數(shù)據(jù)緩沖的長度(單位:Byte字節(jié))。newData目標語音數(shù)據(jù)緩沖。newLen目標語音數(shù)據(jù)緩沖的大小(最大可用空間,單位:Byte字節(jié))。oldRate原語音數(shù)據(jù)的采樣率(單位:Hz赫茲)。oldBits原語音數(shù)據(jù)的量化精度

51、(單位:bit位)。newRate目標語音數(shù)據(jù)的采樣率(單位:Hz赫茲)。newBits目標語音數(shù)據(jù)的量化精度(單位:bit位)。返回值:實際轉(zhuǎn)換后目標語音數(shù)據(jù)的長度(單位:Byte字節(jié))。注釋:該函數(shù)只處理量化精度為16位的數(shù)據(jù),既oldBits=newBits=16,實際上只轉(zhuǎn)換PCM的采樣率。范例:int x = ttsChangeWaveFmt(buff1,i,buff2,1000000,16000,16,8000,16);/將buff1中16000Hz 16Bit的波形數(shù)據(jù)轉(zhuǎn)換成buff2中的8000Hz 16Bit數(shù)據(jù),目標數(shù)據(jù)長度返回x。4.23 ttsPcmToWavePCM數(shù)

52、據(jù)轉(zhuǎn)換成WAVE文件語音數(shù)據(jù)格式。語法:void WINAPI ttsPcmToWave(char * PcmData, char * WavData, int snLength, int Samples, int Bits);參數(shù):PcmDataPCM波形數(shù)據(jù)緩存。WavDataWAVE波形數(shù)據(jù)緩存。snLength波形數(shù)據(jù)的長度(單位: Byte字節(jié))Samples波形數(shù)據(jù)的采樣率(單位:Hz赫茲)。Bits波形數(shù)據(jù)的量化精度(單位:bit位)。返回值:無。注釋:采樣率和量化精度不變。范例:ttsPcmToWave(buff1, buff2, nLen, 16000, 16);/將buff

53、1中的PCM波形數(shù)據(jù),轉(zhuǎn)換成Wave格式數(shù)據(jù),放于Buff2中。/采樣頻率16000Hz,量化精度是16Bit。結(jié)果數(shù)據(jù)長度是nLen+444.24 ttspcmtoalaw將16bits的pcm數(shù)據(jù)轉(zhuǎn)化為8bits的A-law格式。語法:int WINAPI ttspcmtoalaw(void * olddata, int len, const void * newdata, int newlen);參數(shù):olddatapcm數(shù)據(jù)的緩沖區(qū)指針lenpcm數(shù)據(jù)的長度(單位:Byte字節(jié))newdataA-law數(shù)據(jù)的緩沖區(qū)指針newlenA-law數(shù)據(jù)的緩沖區(qū)的長度(單位:Byte字節(jié))返回值

54、:成功返回A-law數(shù)據(jù)長度,失敗返回-1。注釋:采樣率不變。范例:int x = ttspcmtoalaw (buff1, len1, buff2, len2);4.25 ttspcmtoulaw將16bits的pcm數(shù)據(jù)轉(zhuǎn)化為8bits的U-law格式。語法:int WINAPI ttspcmtoulaw(void * olddata, int len, const void * newdata, int newlen);參數(shù):olddatapcm數(shù)據(jù)的緩沖區(qū)指針lenpcm數(shù)據(jù)的長度(單位:Byte字節(jié))newdataU-law數(shù)據(jù)的緩沖區(qū)指針newlenU-law數(shù)據(jù)的緩沖區(qū)的長度(單

55、位:Byte字節(jié))返回值:成功返回新數(shù)據(jù)長度,失敗返回-1。注釋:采樣率不變。范例:int x = ttspcmtoalaw (buff1, len1, buff2, len2);4.26 ttspcm16to8將16位量化精度的PCM數(shù)據(jù)改為8位。語法:int WINAPI ttspcm16to8(const void * olddata, int len, const void * newdata, int newlen);參數(shù):olddata量化精度為16bits的pcm數(shù)據(jù)。Len16bits的pcm數(shù)據(jù)的長度(單位:Byte字節(jié))Newdata量化精度為8bits的pcm數(shù)據(jù)。New

56、len緩沖區(qū)的長度(單位:Byte字節(jié))。返回值:成功返回新數(shù)據(jù)長度,失敗返回-1。注釋:無。范例:int x = ttspcm16to8(buff1, len1, buff2, len2);4.27 ttspcm8to16將8位量化精度的PCM數(shù)據(jù)改為16位。語法:int WINAPI ttspcm8to16(const void * olddata, int len, const void * newdata, int newlen);參數(shù):olddata量化精度為8bits的pcm數(shù)據(jù)。Len8bits的pcm數(shù)據(jù)的長度(單位:Byte字節(jié))。Newdata量化精度為16bits的pcm

57、數(shù)據(jù)。Newlen緩沖區(qū)的長度(單位:Byte字節(jié))。返回值:成功返回新數(shù)據(jù)長度,失敗返回-1。注釋:無。范例:int x = ttspcm8to16(buff1, len1, buff2, len2);4.28 ConvertToVox8將波形文件從16bits的PCM格式轉(zhuǎn)換為8KHz采樣率8bits的Vox格式, 便于電話語音卡(dilogic卡)的播放。語法:int WINAPI ConvertToVox8(int Samples , short * iDataBuffer , int DataLen , char * cVoxDataBuffer);參數(shù):Samples當前PCM格式

58、語音數(shù)據(jù)的采樣率(單位:Hz赫茲)。iDataBuffer當前的PCM語音數(shù)據(jù)。DataLen語音數(shù)據(jù)的長度(單位:short)。cVoxDataBuffer轉(zhuǎn)換后的Vox8格式的語音數(shù)據(jù)。返回值:轉(zhuǎn)換后Vox8類型的語音數(shù)據(jù)的長度,以Byte(字節(jié))為單位。注釋:上面通過ttsPlay后在waveParam結(jié)構(gòu)里面的波形數(shù)據(jù)以及長度都是以Byte(字節(jié))為單位的,所以在調(diào)用該函數(shù)的時候, 注意單位的轉(zhuǎn)換。范例:int x = ConvertToVox8(16000, buff1, nLen, buff2);/nLen(short)為原語音數(shù)據(jù)長度。4.29 ConvertToVox將波形文件

59、從16bits的PCM格式轉(zhuǎn)換為8bits的Vox格式, 便于電話語音卡(dilogic卡)的播放語法:int WINAPI ConvertToVox(int Samples , short * iDataBuffer , int DataLen , char * cVoxDataBuffer);參數(shù):SamplesPCM格式語音數(shù)據(jù)的采樣率(單位:Hz赫茲)。iDataBufferPCM語音數(shù)據(jù)。DataLen語音數(shù)據(jù)的長度(單位:short)。nVoxSamples 需要轉(zhuǎn)換成的Vox格式的采樣率(單位:Hz赫茲)cVoxDataBuffer轉(zhuǎn)換后的Vox格式的語音數(shù)據(jù)。返回值:轉(zhuǎn)換后Vo

60、x類型的語音數(shù)據(jù)的長度,以Byte(字節(jié))為單位。注釋:上面通過ttsPlay后在waveParam結(jié)構(gòu)里面的波形數(shù)據(jù)以及長度都是以Byte(字節(jié))為單位的,所以在調(diào)用該函數(shù)的時候, 注意單位的轉(zhuǎn)換。范例:char buff11000000,buff21000000;int x=ConvertToVox(16000,buff1,i,buff2);/i為原語音數(shù)據(jù)以short為/單位的數(shù)據(jù)的長度。4.30 ttsWriteToFile將pcm波形數(shù)據(jù)按規(guī)定的格式寫入到文件。語法:BOOL WINAPI ttsWriteToFile(char * snData , int snLength , i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論