winXP控制面板TTS語音打不開卡頓-SDK開發無法播放中文解決方法-MFC調用代碼


winXP控制面板TTS語音打不開卡頓解決方法

下載安裝:

http://www.bkill.com/download/153.html

http://d3.jnqcjy.ltd:806/1208/speechsdk51.rar

1.安裝Microsoft Speech SDK 5.1.msi

2. 安裝Microsoft Speech SDK 5.1 Language Pack.msi

 

 

打開“C:\Windows\Inf”,右鍵單擊文件“sapi5.inf

 

 

 

 https://wenku.baidu.com/view/71e02f4733687e21af45a9b5.html

 

 

#include "StdAfx.h"
#include "Class_PlayAudio.h"

Class_PlayAudio::Class_PlayAudio(void)
{
}

Class_PlayAudio::~Class_PlayAudio(void)
{
}


void Class_PlayAudio::ReadAudioConfig()
{
    char szReadText[100];
    try
    {
        GetPrivateProfileStringA("Config", "RepeatTimes", "admin", szReadText, sizeof(szReadText), "./AudioConfig.ini");
        PlayAudio_RepeatTimes= _bstr_t(szReadText).operator TCHAR *();
        GetPrivateProfileStringA("Config", "PlayInterval", "admin", szReadText, sizeof(szReadText), "./AudioConfig.ini");
        PlayAudio_PlayInterval= _bstr_t(szReadText).operator TCHAR *();
        GetPrivateProfileStringA("Config", "PlayContent", "admin", szReadText, sizeof(szReadText), "./AudioConfig.ini");
        PlayAudio_PlayContent= _bstr_t(szReadText).operator TCHAR *();
    }
    catch(CFileException ex)
    {
        MessageBox(L"讀取文件失敗");
    }
    
}
void Class_PlayAudio::MSSSpeak(LPCTSTR speakContent)// speakContent為LPCTSTR型的字符串,調用此函數即可將文字轉為語音
{
    ISpVoice *pVoice = NULL;

    //初始化COM接口
    if (FAILED(::CoInitialize(NULL)))
        //MessageBox(NULL, (LPCWSTR)L"COM接口初始化失敗!",(LPCWSTR)L"提示", MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2);
        MessageBox(L"COM初始化失敗");

    //獲取SpVoice接口
    HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void**)&pVoice);
    ISpObjectToken * pSpObjectToken = NULL; 
    if (SUCCEEDED(SpFindBestToken(SPCAT_VOICES, L"language=804", NULL, &pSpObjectToken)))//804代表中文 
        //if (SUCCEEDED(SpFindBestToken(SPCAT_VOICES, L"language=409", NULL, &pSpObjectToken)))//804代表中文 
        //if (SUCCEEDED(hr))
    {
        pVoice->SetVolume((USHORT)100); //設置音量,范圍是 0 -100
        pVoice->SetRate(0); //設置速度,范圍是 -10 - 10
        hr = pVoice->Speak(speakContent, 0, NULL);
        pVoice->Release();
        pVoice = NULL;
    }

    //釋放com資源
    ::CoUninitialize();
}

//void Class_PlayAudio::OnBnClickedButton1()
//{
//    // TODO: 在此添加控件通知處理程序代碼
//    //MSSSpeak(L"大家好");
//    MSSSpeak(L"nice大家好");
//
//}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM