首頁(yè)>>>技術(shù)>>>語(yǔ)音應(yīng)用>>>語(yǔ)音合成(TTS)  語(yǔ)音合成產(chǎn)品

基于MSTTS的網(wǎng)絡(luò)通信應(yīng)用開(kāi)發(fā)

武漢大學(xué)電信學(xué)院(430072) 楊宗長(zhǎng) 2003/08/04

  VOIP(Voice over IP,俗稱(chēng)IP電話(huà))是建立在IP技術(shù)上的分組化、數(shù)字化傳輸技術(shù),其基本原理是:通過(guò)語(yǔ)音壓縮算法對(duì)話(huà)音進(jìn)行壓縮編碼處理,然后把這些語(yǔ)音數(shù)據(jù)按IP等相關(guān)協(xié)議進(jìn)行打包,經(jīng)過(guò)IP網(wǎng)絡(luò)把數(shù)據(jù)包傳輸?shù)侥康牡兀侔堰@些語(yǔ)音數(shù)據(jù)包串起來(lái),經(jīng)過(guò)解碼解壓處理后,恢復(fù)成原來(lái)的語(yǔ)音信號(hào),從而達(dá)到由IP網(wǎng)絡(luò)傳送話(huà)音的目的。雖然經(jīng)過(guò)幾年的快速發(fā)展.然而由于種種原因,VOIP離成熟的應(yīng)用還有一段不小的距離;實(shí)際上,人們?cè)诰W(wǎng)絡(luò)通信的內(nèi)容還是文本為主,正如:IOCQ等.

一、MSTTS(Microsoft Text TO Speech,文本朗讀)網(wǎng)絡(luò)通信設(shè)計(jì)

  MSTTS 是基于COM(Component Object Model,組件對(duì)象模型) 規(guī)范的文本朗讀技術(shù);簡(jiǎn)單地說(shuō),它能將文本直接朗讀出來(lái).因此應(yīng)用MSTTS技術(shù) ,我們可以開(kāi)發(fā)出具有語(yǔ)音功能的網(wǎng)絡(luò)通信,

  本文的基本設(shè)計(jì)思路: 通信方,將通話(huà)文本信息通過(guò)網(wǎng)絡(luò)傳輸?shù)綄?duì)方;對(duì)方接收到信息后,顯示信息并同時(shí)通過(guò)MSTTS 播放出來(lái)。


二、MSTTS 應(yīng)用程序開(kāi)發(fā).

  MSTTS基于COM 規(guī)范的文本朗讀技術(shù);COM是基于二進(jìn)制標(biāo)準(zhǔn)一種軟件組件通信技術(shù),它主要的目標(biāo)是為了管理日益復(fù)雜的應(yīng)用程序和實(shí)現(xiàn)代碼重用.在使用COM組件對(duì)象時(shí),一般地使用兩種方式:

  A.通過(guò)CoCreateInstance() 或CoCreateInstanceEx()實(shí)例化對(duì)象;然后調(diào)用Addref()引用 計(jì)數(shù),使用完后,再調(diào)用Release()釋放對(duì)象

  B..另外一種更簡(jiǎn)便的方法就是使用智能指針(smart pointer)。

  所有的智能指針都是基于_com_ptr_t 的模塊類(lèi),_ com_ptr_t 它封裝IUnknow QureyInterface ,Addref() 和 Release() 方法;它具有自動(dòng)計(jì)數(shù)的機(jī)制:即在構(gòu)造對(duì)象時(shí),自動(dòng)計(jì)數(shù);在析構(gòu)對(duì)象時(shí),自動(dòng)調(diào)用Release().通過(guò) #import 指令可以入服務(wù)組件到應(yīng)用程序中,并生成智能指針定義.

1.MTTS 組件的應(yīng)用編程

導(dǎo)入MSTTS 組件

#import "C:\Winnt\Speech\VText.DLL" no_namespace // MSTTS 的安裝目錄

CoInitialize(NULL); //COM 初始化

ITextToSpeechPtr pSkPtr(_uuidof(TextToSpeech)); /MSTTS智能指針

ITextToSpeech *pTxtSph=pSkPtr.GetInterfacePtr();;

pTxtSph->AddRef();

1>.朗讀

char buf[]=”Hello, the word!”; //文本信息

pTxtSph->Speak(buf); //朗讀

2>.暫停

pTextSph->Pause();

3>.繼續(xù)

pTxtSph->Resume();

4>.停止

pTxtSph->Stop();


2.網(wǎng)絡(luò)通信應(yīng)用編程

<1> 套接字

  它是網(wǎng)絡(luò)的基本構(gòu)件,是網(wǎng)絡(luò)應(yīng)用程序接口。它具有可以被命名和尋址的通信端點(diǎn),使用中的每一個(gè)套接字都有其類(lèi)型和一個(gè)與之相連聽(tīng)進(jìn)程。WINDOWS SOCKET 版本支持兩種套接字:流套接字(SOCK_STREAM)和數(shù)據(jù)報(bào)套接字(SOCK_DGRAM) .

<2>、WINDOWS SOCKETS 實(shí)現(xiàn)

  WINDOWS SOCKETS 實(shí)現(xiàn)是指實(shí)現(xiàn)了WINDOWS SOCKETS規(guī)范所描述的全部功能的一套軟件。在VC++6.0 開(kāi)發(fā)平臺(tái)中它提供了專(zhuān)門(mén)的阻塞形式的CSocket 類(lèi)() 和異步形式的CAsyncSocket 類(lèi),封裝實(shí)現(xiàn)了Windows Sockets 功能..

<3>網(wǎng)絡(luò)數(shù)據(jù)報(bào)通信的編程實(shí)現(xiàn)

A. 創(chuàng)建建套接字

CasyncSocket m_Sock;

M_Sock.Create(6000,SOCK_DGRAM);// 數(shù)據(jù)報(bào)套接字,端口6000

B. 發(fā)送文本信息

char textbuf[]=”Hello,good day!”

m_Sock.SendTo(textbuf,//發(fā)送的數(shù)據(jù)

sizeof(buf),//數(shù)據(jù)的大小

,6000,//對(duì)方的端口

“127.0.0.1”,//對(duì)方的主機(jī)名或IP 地址

0);

C. 接收文本信息

char revbuf[50];//接收緩存區(qū)

CString strHost;//保存發(fā)送方IP地址的字符串

unsigned int port;//發(fā)送方端口

int len=m_Sock.ReceiveFrom(revbuf,50,strHost,port); //接收信息

pTxtSph->Speak(revbuf); //朗讀接收到的文本信息

3.程序示例

<1>用戶(hù)界面(如下圖)


<2>通信演示(單機(jī)的自發(fā)自收)


計(jì)算機(jī)世界網(wǎng)(www.ccw.com.cn)


相關(guān)鏈接:
捷通華聲“颶風(fēng)行動(dòng)”降低語(yǔ)音應(yīng)用門(mén)檻 2003-08-04
語(yǔ)音應(yīng)用客戶(hù)滿(mǎn)意度調(diào)研 2003-07-29
Nuance Voice Platform - NVP 2.0語(yǔ)音平臺(tái) 2003-07-22
語(yǔ)音合成發(fā)揮作用 2003-07-21
淺析國(guó)元證券呼叫中心自動(dòng)語(yǔ)音信息制作方式 2003-07-21

分類(lèi)信息:     文摘   技術(shù)_語(yǔ)音合成_文摘
亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 阜平县| 监利县| 禄丰县| 萝北县| 福州市| 嵊州市| 礼泉县| 盘山县| 绵竹市| 平谷区| 新宁县| 昭通市| 高平市| 阿鲁科尔沁旗| 友谊县| 武川县| 沂南县| 平顶山市| 雷山县| 开鲁县| 和政县| 申扎县| 林州市| 安徽省| 明水县| 黔西| 湄潭县| 贵港市| 肇庆市| 临朐县| 日照市| 大石桥市| 普格县| 讷河市| 临西县| 昌乐县| 灵山县| 澄江县| 灵武市| 泰州市| 新密市| http://444 http://444 http://444 http://444 http://444 http://444