• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
     首頁 > 技術(shù) > 技術(shù)文摘 > 基于MSTTS的網(wǎng)絡(luò)通信應(yīng)用開發(fā)

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

    2003-08-04 00:00:00   作者:   來源:   評論:0 點擊:



    一、MSTTS(Microsoft Text TO Speech,文本朗讀)網(wǎng)絡(luò)通信設(shè)計
      MSTTS 是基于COM(Component Object Model,組件對象模型) 規(guī)范的文本朗讀技術(shù);簡單地說,它能將文本直接朗讀出來.因此應(yīng)用MSTTS技術(shù) ,我們可以開發(fā)出具有語音功能的網(wǎng)絡(luò)通信,
      本文的基本設(shè)計思路: 通信方,將通話文本信息通過網(wǎng)絡(luò)傳輸?shù)綄Ψ?對方接收到信息后,顯示信息并同時通過MSTTS 播放出來。

    二、MSTTS 應(yīng)用程序開發(fā).
      MSTTS基于COM 規(guī)范的文本朗讀技術(shù);COM是基于二進制標(biāo)準(zhǔn)一種軟件組件通信技術(shù),它主要的目標(biāo)是為了管理日益復(fù)雜的應(yīng)用程序和實現(xiàn)代碼重用.在使用COM組件對象時,一般地使用兩種方式:
      A.通過CoCreateInstance() 或CoCreateInstanceEx()實例化對象;然后調(diào)用Addref()引用 計數(shù),使用完后,再調(diào)用Release()釋放對象
      B..另外一種更簡便的方法就是使用智能指針(smart pointer)。
      所有的智能指針都是基于_com_ptr_t 的模塊類,_ com_ptr_t 它封裝IUnknow QureyInterface ,Addref() 和 Release() 方法;它具有自動計數(shù)的機制:即在構(gòu)造對象時,自動計數(shù);在析構(gòu)對象時,自動調(diào)用Release().通過 #import 指令可以入服務(wù)組件到應(yīng)用程序中,并生成智能指針定義.
    1.MTTS 組件的應(yīng)用編程
    導(dǎo)入MSTTS 組件
    #import "C:WinntSpeechVText.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();

    <1> 套接字
      它是網(wǎng)絡(luò)的基本構(gòu)件,是網(wǎng)絡(luò)應(yīng)用程序接口。它具有可以被命名和尋址的通信端點,使用中的每一個套接字都有其類型和一個與之相連聽進程。WINDOWS SOCKET 版本支持兩種套接字:流套接字(SOCK_STREAM)和數(shù)據(jù)報套接字(SOCK_DGRAM) .
    <2>、WINDOWS SOCKETS 實現(xiàn)
      WINDOWS SOCKETS 實現(xiàn)是指實現(xiàn)了WINDOWS SOCKETS規(guī)范所描述的全部功能的一套軟件。在VC++6.0 開發(fā)平臺中它提供了專門的阻塞形式的CSocket 類() 和異步形式的CAsyncSocket 類,封裝實現(xiàn)了Windows Sockets 功能..
    <3>網(wǎng)絡(luò)數(shù)據(jù)報通信的編程實現(xiàn)
    A. 創(chuàng)建建套接字
    CasyncSocket m_Sock;
    M_Sock.Create(6000,SOCK_DGRAM);// 數(shù)據(jù)報套接字,端口6000
    B. 發(fā)送文本信息
    char textbuf[]=”Hello,good day!”
    m_Sock.SendTo(textbuf,//發(fā)送的數(shù)據(jù)
    sizeof(buf),//數(shù)據(jù)的大小
    ,6000,//對方的端口
    “127.0.0.1”,//對方的主機名或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>用戶界面(如下圖)

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

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

    相關(guān)閱讀:

    分享到: 收藏

    專題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 重庆市| 五寨县| 集贤县| 古蔺县| 霍林郭勒市| 富源县| 布拖县| 青神县| 潞城市| 阿克苏市| 关岭| 紫金县| 北宁市| 延川县| 五华县| 南通市| 玛沁县| 五指山市| 吉木乃县| 鹤壁市| 区。| 利辛县| 玉林市| 和硕县| 绥棱县| 桂东县| 宜宾市| 双牌县| 泾川县| 万盛区| 祁阳县| 高邮市| 夏河县| 内江市| 无极县| 平安县| 静安区| 习水县| 娱乐| 广汉市| 司法| http://444 http://444 http://444 http://444 http://444 http://444