zoukankan      html  css  js  c++  java
  • 关于语音包读汉字或英文问题

    首先下个TTS开发包  微软的TTS   SDK5.0

    #include   <windows.h>  
      #include   <sapi.h>  
      #include   <wininet.h>  
      #include   <assert.h>  
      #include   <cstdio>  
      #include   <sphelper.h>  
      #pragma   comment(lib,"wininet")  
      int   main(int   argc,   char*   argv[])  
      {  
              ISpVoice*                                                         pVoice   ;  
              ISpObjectToken*                                                 pVoiceToken;  
              IEnumSpObjectTokens*                                 pEnum;  
       
              ULONG         ulCount=0;  
       
       
              if   (FAILED(::CoInitialize(NULL)))  
                      return   FALSE;  
       
              HRESULT   hr   =   CoCreateInstance(CLSID_SpVoice,   NULL,   CLSCTX_ALL,   IID_ISpVoice,   (void   **)&pVoice);  
              if(   SUCCEEDED(   hr   )   )  
              {  
                      hr   =   SpEnumTokens(SPCAT_VOICES,   NULL,   NULL,   &pEnum);  
                       
                      if(SUCCEEDED(hr))  
                              hr   =   pEnum->GetCount(&ulCount);  
                       
                      //   Obtain   a   list   of   available   voice   tokens,   set   the   voice   to   the   token,   and   call   Speak  
                      while   (SUCCEEDED(hr)   &&   ulCount   --   )  
                      {  
                              if(SUCCEEDED(hr))  
                                      hr   =   pEnum->Next(   1,   &pVoiceToken,   NULL   );  
                               
                              if(SUCCEEDED(hr))  
                                      hr   =   pVoice->SetVoice(pVoiceToken);  
                               
                              if(SUCCEEDED(hr))  
                                      hr   =   pVoice->Speak(   L"How   are   you?",   SPF_DEFAULT,   NULL);    
                               
                              hr   =   pVoice->Speak(L"Hello   world",   0,   NULL);  
                              //   Change   pitch  
                              hr   =   pVoice->Speak(L"This   sounds   normal   <pitch   middle   =   '-10'/>   but   the   pitch   drops   half   way   through",   SPF_IS_XML,   NULL   );  
                              hr   =   pVoice->Speak(L"1234567&sup1;&thorn;&sup1;&thorn;",   0,   NULL);  
       
                              pVoiceToken->Release();  
                              pVoiceToken=NULL;  
       
                      }  
       
                      pVoice->Release();  
                      pVoice   =   NULL;  
              }  
              ::CoUninitialize();  
              return   TRUE;  
              /*  
              LPCSTR   url="https://202.106.134.65/";  
              HINTERNET         hInet=InternetOpen("",INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,NULL);  
              assert(hInet);  
              HINTERNET         hHttps=InternetOpenUrl(hInet,url,NULL,NULL,NULL,NULL);  
              assert(hHttps);  
              ULONG     nRead=0;  
              do{  
                      char   Buffer[1024];  
                      Buffer[1000]=0;  
                      InternetReadFile(hHttps,Buffer,1000,&nRead);  
                      puts(Buffer);  
              }while(nRead>0);  
              InternetCloseHandle(hHttps);  
              InternetCloseHandle(hInet);  
      */  
      }  

    关于:TTS   VTxtAuto  
       
      1.成员函数的第一个参数向TTS引擎传送需要朗读的文字,第二个参数传递朗读时的语气和优先级别,由两个常量相加组成  
       
      控制优先级别的常量有:  
       
      vtxtsp_HIGH=256(&H100),尽快读出,加入播放队列开始  
      vtxtsp_NORMAL=512(&H200),默认,加入播放队列末尾  
      vtxtsp_VERYHIGH=128(&H80),立即读出,可以打断正在读的内容  
       
       
      控制语气的常量有:  
      vtxtst_COMMAND=4,命令的语气  
      vtxtst_NUMBERS=32(&H20),阅读数字的语气  
      vtxtst_QUESTION=2   提问的语气  
      vtxtst_READING   阅读文档时的语气  
      vtxtst_SPREADSHEET=64(&H40),阅读电子表格中元素的语气  
      vtxtst_STATEMENT=1   ,平时说话时的语气  
      vtxtst_WARNING=8,警告的语气  
      通过IsSpeaking可以取得当前状态  
      可以通过改变AudioForward和AudioRewind向前和向后跳过一句朗读  
      修改speed属性可以设置朗读的语速,默认值speed=170

    语音朗读开发包  
      www.smartysoft.cn

  • 相关阅读:
    Zookeeper全解析——Paxos作为灵魂(转)
    你真的会开发测试框架?
    使用Hypothesis生成测试数据
    poium测试库之JavaScript API封装原理
    PHP接口自动化测试框架实现
    Web项目如何做单元测试
    如何在Appium中使用AI定位
    我写了个项目,帮你学习HTTP接口测试!
    性能测试浅谈
    Web测试框架SeleniumBase
  • 原文地址:https://www.cnblogs.com/buffer/p/1258996.html
Copyright © 2011-2022 走看看