• 关于语音包读汉字或英文问题


    首先下个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

  • 相关阅读:
    LabVIEW入门第六天(布尔控件及布尔量)
    LabVIEW如何加载显示GIF动画
    C#打开EXCEL或保存文件时报错:System.InvalidOperationException:未在本地计算机上注册” Microsoft.ACE.OLEDB.12.0“提供程序。...
    SQL 怎么设置自定义服务器名称登录
    C#打开EXCEL或保存文件时报错:System.InvalidOperationException:未在本地计算机上注册” Microsoft.ACE.OLEDB.12.0"提供程序。
    半平面交
    poj1038
    poj2318 && poj2398
    poj1696
    poj2430
  • 原文地址:https://www.cnblogs.com/buffer/p/1258996.html
Copyright © 2020-2023  润新知