在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

運用SAPI 5.0進行音素分解

運用SAPI 5.0進行音素分解

更新時間:2022-05-03 文章作者:未知 信息來源:網絡 閱讀次數:

1.引言

隨著計算機網絡,智能家電,多通道用戶界面的飛速發展,人臉與語音相結合的人性化的交互方式,將成為未來人們使用計算機的主要趨勢。在基于網絡的人-人交互系統中,用戶的語音輸入可以直接在網絡上作為音頻流傳輸,在播放的一端進行音素切分,驅動人臉動畫。這樣做的優點是直接播放原始聲音,聲音失真小,缺點是傳輸的數據量大、需要占用較大的網絡帶寬,當虛擬環境中用戶數量較多時網絡和服務器可能不堪重負。另一種可行的方法是在發言的用戶一端將語音輸入切分為音素流,在播放的一端將音素流重新合成為語音,驅動人臉動畫。這樣做需要傳輸的數據量就小得多,網絡和服務器的負載都要小得多,缺點是用戶聽到的是合成語音。本文旨在說明如何利用SAPI5.0對輸入音頻進行音素切分。



2.SAPI5.0 及其語音識別(SR)簡介

         微軟的 Speech SDK 5.0是微軟視窗環境的開發工具包。該開發工具包包括了先前的以"Whistler"和 "Whisper"命名的語音識別和語音合成引擎的最新版本。這個SDK中含有語音應用設計接口(SAPI)、微軟的連續語音識別引擎(MCSR)以及微軟的串聯語音合成(又稱語音到文本(TTS))引擎等等。SAPI中還包括對于低層控制和高度適應性的直接語音管理、訓練向導、事件、語法編譯、資源、語音識別(SR)管理以及TTS管理,其中應用程序接口(API)和設備驅動接口(DDI),結構如圖2所示。應用程序通過API層和SAPI(SpeechAPI)通信,語音引擎則通過DDI層和SAPI(SpeechAPI)進行交互。通過使用這些API,可以加快在語音識別或語音合成方面應用程序的開發。



SAPI5在語音識別方面提供的基本服務:

a)管理語音輸入,諸如從麥克風,文件等方式,并負責將語音轉化成引擎所能接受的特定格式。

b)加載文法并負責解析和編輯。

c)編譯用標準xml文件定義的文法,轉換定制文法等。

d)使多個應用共享一個識別引擎.

f)返回結果和必要的信息給應用程序。

g)保存輸入音頻和序列化結果以便分析。

h)進行適當的錯誤異常處理,增加應用程序的健壯性。

SR引擎提供的基本服務:

a)可使用SAPI的文法接口,加載所需文法。

b)進行語音識別

c)可調用SAPI來處理文法和識別狀態的改變。

d)產生識別結果并得到相應事件,以便給應用開發提供必要的信息。

3.   設計思想

由于SAPI5.0不提供直接的方法將中文語音輸入直接分解成相應的音素,故采用這種折衷的辦法來處理。

具體步驟:

a)初始化引擎并使其工作在連續語音識別方式下(Dictation Mode),即非特定詞匯的連續語音識別,同時建立一個從漢字到拼音的映射數據庫。然后進入消息循環處理階段,響應SPEI_SOUND_START消息,開始識別輸入語音,在得到SPEI_SOUND_END消息后,若在此聲音開關其間無任何識別結果,則認為是噪聲信號,不作任何處理。若期間得到SPEI_RECOGNITION消息,則在成功取得識別漢字后,執行b。

b)若處理完畢所有漢字,則輸出隊列中的全部元素,否則,對識別結果中的每一個漢字,重復執行c-e。

       c)在識別的漢字中查詢相應的拼音。

d)按照一定的規則分解拼音為可視音素。

e)將該組可視音素入隊列。

用戶對麥克風連續講話,按上述思路,可完成其語音音素分解工作。其中涉及中文可視音素的劃分,在MPEG-4標準中,劃分14組可明顯區分的英文音素。我們根據漢語的發音特點,參照科大訊飛公司的標準及其其他相關文獻把漢語的可視音素劃分為15組。如下表所示:

可視音素標號
音素
可視音素標號
音素

1
A
9
O

2
P, b, m
10
R

3
D,t,n,l
11
U,v

4
E.
12
Z,c,s

5
F
13
Zh,ch,sh

6
G,k,h
14
N

7
I
15
Ng

8
J,q,x
   
   

每一組都代表一種可視音素的基本的口型,任何一個漢字拼音都可以分解為這些可視音素的組合。這樣,在輸出端就可使用音素流來驅動虛擬人臉了。

4.   具體實現

4.1)初始化COM

if (SUCCEEDED(::CoInitialize(NULL)))

{//進入主消息循環,直到收到退出消息為止

  while(GetMessage(&msg,NULL,0,0)

  {//消息處理代碼

         ......

  }

::CoUninitialize();//退出時,釋放相關資源

}



4.2)初始化識別引擎

CComPtr<ISpRecoContext>              cpRecoCtxt;

CComPtr<ISpRecoGrammar>    cpDictationGrammar;

CComPtr<ISpRecognizer>             cpRecoEngine;

CComPtr<ISpAudio>                             cpAudio;

hr = cpRecoEngine.CoCreateInstance(CLSID_SpInprocRecognizer);

//創建一個識別引擎對象,并使其工作在排他方式,只允許該應用訪問此識別引擎。

    if( SUCCEEDED( hr ) )//

    {

        hr = cpRecoEngine->CreateRecoContext( &cpRecoCtxt );

                   //為該識別引擎實例創建一個識別上下文;

    }

    if (SUCCEEDED(hr))

    {

        hr = cpRecoCtxt->SetNotifyWindowMessage( hWnd, WM_USER_SR_MSG, 0, 0 );

                 //設定識別通知消息為WM_USER_SR_MSG(自定義消息),并由該消息所指定的函數處理;

    }

    if (SUCCEEDED(hr))

{//設定哪些引擎識別事件(消息)可觸發識別通知消息;

//在此,我們僅關心正確的識別消息(SPEI_RECOGNITION),而不關心假設識別和錯誤識別消息(即SPEI_HYPOTHESIS和SPEI_FALSE_RECOGNITION);

    const ULONGLONG ullMyInterest = SPFEI(SPEI_RECOGNITION);

    hr = m_cpRecoCtxt->SetInterest(ullMyInterest, ullMyInterest);

    }

    // 創建默認的音頻對象;

    hr = SpCreateDefaultObjectFromCategoryId(SPCAT_AUDIOIN, &cpAudio);

    // 設定引擎的輸入到cpAudio對象,以便處理SPEI_SOUND_START和SPEI_SOUND_END消息;

    hr = cpRecoEngine->SetInput(cpAudio, TRUE);

    hr = cpRecoEngine->SetRecoState( SPRST_ACTIVE );

    if (SUCCEEDED(hr))

    {

        // 設定需要的文法并使其有效

       hr = cpRecoCtxt->CreateGrammar( 0, &cpDictationGrammar );

    }

    if  (SUCCEEDED(hr))

    {

        hr = cpDictationGrammar->LoadDictation(NULL, SPLO_STATIC);

    }

    if (SUCCEEDED(hr))

    {

        hr = m_cpDictationGrammar->SetDictationState( SPRS_ACTIVE );

}

4.3) 響應WM_USER_SR_MSG消息,并處理如下:

ProcessSapiMessage(......)

{

USES_CONVERSION;

CSpEvent event;

    // 處理程序所關心的消息

    while (event.GetFrom(cpRecoCtxt) == S_OK )

    {

        switch (event.eEventId)

        {

            case SPEI_SOUND_START:

                bInputSound = TRUE;

                break;



            case SPEI_SOUND_END:

                if (bInputSound)

                {

                    bInputSound = FALSE;

                    if (!bGotReco)//是否識別到漢字?

                    {

                        // 一段語音輸入已完成,即檢測到了語音的開始和結束

                        // 但是識別引擎沒有成功識別任何東西,特殊處理

                                               ........

                    }

                    bGotReco = FALSE;

                }

                break;



            case SPEI_RECOGNITION:

                // 得到識別結果,可能是一個字,也可能是一個詞組,統一處理

                {

                    bGotReco = TRUE;

                    CSpDynamicString dstrText;

          if(SUCCEEDED(event.RecoResult()->GetText(SP_GETWHOLEPHRASE,   SP_GETWHOLEPHRASE, TRUE, &dstrText, NULL)))

                    {

                     GetWordViseme(dstrText);//自定義函數,得到dstrText中漢字的可視音素并輸出。

                    }

                break;

}

               }//switch over

}//while loop over;

}

5.   結束語和進一步的工作

由于使用了連續的語音識別模式,就要求對講話者進行大量的語音訓練,否則識別效果堪憂,則相應的音素分解也就不言爾喻了。加之整個分解是建立在識別基礎上的,對機器的性能,速度要求也比較高。因此,我們擬采用更直接的方法,實際上,對音素表示而言,在人臉動畫應用方面,用它來合成語音是不太合適的。由于音素只是從聲學角度來區別發音高低,傳遞有用的語言成份,它忽略了發聲和臉形之間的聯系,臉形的幅度(大小)和發音能量之間的聯系,發音時和唇形的聯系等等。所以,我們希望能從音頻信號中直接產生唇形,以產生更加真實感的人臉動畫,這是下一步的工作。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 国产精品-区区久久久狼| 婷婷免费在线观看| 国产视频一区二区三区在线播放| www.夜夜爽| 日韩中文字幕三区| 2021狠狠干| 色戒在线免费观看| 日本毛片在线免费观看| 亚洲熟妇无码av在线播放| wwww.国产| 播放灌醉水嫩大学生国内精品| 青青草原网站在线观看| wwww.国产| 黄色在线视频网| 日韩欧美在线免费观看视频| 国产91美女视频| 日韩精品一区在线视频| 97超碰人人爱| 亚洲av首页在线| 欧美做暖暖视频| 丰满女人性猛交| 99精品视频网站| 91精品视频国产| www.桃色.com| www.日本久久| 污污网站在线观看视频| 中文av一区二区三区| jizz大全欧美jizzcom| 国产性xxxx18免费观看视频| 91视频 -- 69xx| 日本成年人网址| 亚洲性生活网站| 国产福利在线免费| 青青草久久伊人| 欧美精品一区二区性色a+v| 黄色特一级视频| 日韩视频免费播放| 999香蕉视频| 伊人影院综合在线| 天天爱天天做天天操| www.日本三级| 狠狠97人人婷婷五月| 青青青国产在线视频| 一女二男3p波多野结衣| 日韩欧美中文视频| 欧美无砖专区免费| 男人插女人下面免费视频| 手机免费看av网站| 成人精品视频在线播放| 浮妇高潮喷白浆视频| 黄色三级视频在线| 国产一级黄色录像片| 黄色片一级视频| 特黄特黄一级片| 国产淫片免费看| 在线a免费观看| 国产精品视频一区二区三区四区五区| 国模杨依粉嫩蝴蝶150p| 看全色黄大色大片| 能在线观看的av网站| 国产精品12p| 97公开免费视频| 在线视频一二三区| 激情 小说 亚洲 图片: 伦| 99精品一区二区三区的区别| 六月丁香婷婷在线| 超薄肉色丝袜足j调教99| 超碰在线97免费| 国产毛片久久久久久国产毛片| 无码少妇一区二区三区芒果| 欧美亚洲色图视频| 黄色片免费网址| 在线免费观看视频黄| 人人妻人人添人人爽欧美一区| 亚洲高清视频免费| the porn av| 青青在线视频观看| 2018日日夜夜| 国产免费xxx| 91精品视频国产| 校园春色 亚洲色图| 日本一本二本在线观看| www婷婷av久久久影片| 日韩成人av免费| 欧美国产日韩另类| 一路向西2在线观看| 熟妇人妻va精品中文字幕| 男女视频网站在线观看| 久久手机在线视频| www.av91| 亚洲精品少妇一区二区| 九一免费在线观看| 艳母动漫在线观看| 91制片厂免费观看| 青青草原播放器| 亚洲综合伊人久久| 强开小嫩苞一区二区三区网站 | 亚洲一区二区在线视频观看| 日韩爱爱小视频| 嫩草视频免费在线观看| 在线不卡一区二区三区| 亚洲娇小娇小娇小| 日韩视频在线观看视频| 99久热在线精品视频| 国产精品视频网站在线观看| 久久亚洲a v| www.成年人视频| 日韩欧美亚洲天堂| 无限资源日本好片| 91亚洲一区二区| 国产黄色激情视频| 色综合久久久久无码专区| 波多野结衣作品集| 久久精品国产露脸对白| 国产一区二区三区乱码| 国产精品亚洲a| 亚洲网中文字幕| 阿v天堂2018| 国产成人精品无码播放| 思思久久精品视频| 日韩av在线播放不卡| 日本久久精品一区二区| 美国av在线播放| 波多野结衣家庭教师视频| 999这里有精品| 免费观看美女裸体网站| 亚欧激情乱码久久久久久久久| 国产盗摄视频在线观看| 黄色免费观看视频网站| 91香蕉视频免费看| 漂亮人妻被中出中文字幕| 日本美女视频一区| www.com毛片| 老司机午夜网站| 538在线视频观看| 欧美一级视频在线播放| 久久国产激情视频| av免费播放网址| 300部国产真实乱| 污污的网站免费| 久久美女福利视频| 美女扒开大腿让男人桶| 日韩av片专区| 手机在线看福利| 少妇高潮毛片色欲ava片| 国产人妻互换一区二区| 日韩肉感妇bbwbbwbbw| 欧美日韩一道本| 妺妺窝人体色www看人体| 成人黄色一级大片| 国产精品无码一本二本三本色| 国产亚洲黄色片| 丁香色欲久久久久久综合网| 色天使在线观看| 国产色视频在线播放| 黄色一级二级三级| 欧美日韩第二页| 久久久久久久激情| 国模无码视频一区二区三区| 91黄色在线看| 女人被男人躁得好爽免费视频| 伊人五月天婷婷| 日本免费在线视频观看| 五月天中文字幕在线| 最新av免费在线观看| 免费看污黄网站| 久久人人爽av| www.久久91| gogogo免费高清日本写真| 亚洲第一天堂久久| 日本成人xxx| 国产一二三四区在线观看| 狠狠精品干练久久久无码中文字幕| 污污视频在线免费| 青青在线视频免费观看| 日韩xxxx视频| 日日碰狠狠丁香久燥| 奇米影音第四色| 国产一区二区在线观看免费视频| 伊人免费视频二| 天天操天天干天天玩| 久久亚洲国产成人精品无码区| 欧美视频在线第一页| 免费看日本毛片| 色综合天天色综合| 国产女人18毛片| 国产精品一区二区免费在线观看| 精品免费国产一区二区| 亚洲 激情 在线| 久久久久久久久久伊人| 欧美 国产 综合| 国产精品视频中文字幕| 欧美 日韩 国产 在线观看| 69sex久久精品国产麻豆| 国产日韩一区二区在线观看| 在线视频观看一区二区| 黄色一级片播放| 亚洲综合伊人久久| 免费在线观看的av网站| 欧美亚洲视频一区|