在线看毛片视频-国产免费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>
  • 日本新janpanese乱熟| 毛葺葺老太做受视频| 免费黄色一级网站| 97国产精东麻豆人妻电影| 男女啪啪免费观看| www.18av.com| www.69av| 久草免费福利在线| 18禁免费观看网站| 国产免费黄视频| 国内外成人激情视频| 国产又黄又大又粗视频| 国产无套内射久久久国产| 欧美牲交a欧美牲交aⅴ免费真| 青青艹视频在线| 欧美黄色一级片视频| 国产xxxxx视频| 久热精品在线播放| 国产人妻互换一区二区| 999久久欧美人妻一区二区| 欧美一区二区视频在线播放| 国产视频一视频二| 国产a级片免费观看| 日韩在线一区视频| 日本熟妇人妻xxxx| 日日碰狠狠丁香久燥| www.51色.com| 国产二区视频在线| 亚州精品一二三区| 黄色录像特级片| 日本a级片免费观看| 中文字幕久久av| 大伊香蕉精品视频在线| 高清一区二区视频| 无码人妻精品一区二区蜜桃网站| 男人天堂网视频| 中文字幕第一页亚洲| www.中文字幕在线| 天天在线免费视频| 人人干人人视频| 性高湖久久久久久久久aaaaa| 成人中文字幕av| 国产片侵犯亲女视频播放| 9久久婷婷国产综合精品性色 | 免费看一级大黄情大片| 亚洲欧美日韩三级| 男人添女人下面高潮视频| 中文字幕成人免费视频| 水蜜桃色314在线观看| 午夜国产福利在线观看| 很污的网站在线观看| 最新中文字幕久久| a在线观看免费视频| 女性女同性aⅴ免费观女性恋| 国产成人强伦免费视频网站| 欧美色图另类小说| 免费国产黄色网址| 国产激情在线看| 日本黄色播放器| 亚洲一级片av| 五月天开心婷婷| 亚洲欧洲日本精品| 一区二区三区视频在线观看免费| 欧美一级欧美一级| 丰满的少妇愉情hd高清果冻传媒 | 激情图片中文字幕| 日韩av片专区| 福利视频999| 中文字幕在线观看日| 91人人澡人人爽人人精品| 北条麻妃视频在线| 国产精品入口免费软件| 韩国日本在线视频| 国产又大又硬又粗| 亚洲一区二区蜜桃| 国产区二区三区| 五月激情婷婷在线| 天天操夜夜操很很操| 桥本有菜av在线| 一本色道久久88亚洲精品综合| 日本成人性视频| 大片在线观看网站免费收看| 97免费视频观看| 欧美日韩在线视频一区二区三区| 欧美黄网站在线观看| 特级丰满少妇一级| 天天综合五月天| 亚洲精品无码国产| 777米奇影视第四色| 久久99爱视频| av一区二区三区免费观看| 丝袜人妻一区二区三区| 亚洲精品乱码久久久久久自慰| 色戒在线免费观看| 中文字幕色呦呦| 日本www高清视频| 久久出品必属精品| 黄色免费视频大全| 污污的视频免费观看| 青草视频在线观看视频| 在线看的黄色网址| 加勒比成人在线| 日本人视频jizz页码69| 欧美 日韩 国产精品| 国内自拍视频网| 国产精品久久久影院| 精品久久久久久中文字幕2017| 国产成人精品免费看在线播放 | 情侣黄网站免费看| 特级黄色录像片| 中文字幕欧美人妻精品一区| 中文字幕av导航| 国产又猛又黄的视频| 国产精品又粗又长| ijzzijzzij亚洲大全| 99视频在线视频| 97成人在线免费视频| 欧美日韩午夜爽爽| 超碰在线资源站| 五月婷婷六月丁香激情| 欧美三级一级片| 欧美xxxx吸乳| 99re精彩视频| 男女视频在线看| 熟妇人妻va精品中文字幕| av免费看网址| 亚洲精品久久久久久久蜜桃臀| 三级黄色片免费看| 色综合五月婷婷| 亚洲欧美日韩综合网| www.色偷偷.com| 性欧美videossex精品| 可以免费在线看黄的网站| 久久精品.com| 黑人糟蹋人妻hd中文字幕| 久久精品视频16| 国产午夜伦鲁鲁| 亚洲午夜无码av毛片久久| 国产免费黄色av| 日韩免费毛片视频| 狠狠热免费视频| 亚洲精品久久久中文字幕| 鲁一鲁一鲁一鲁一av| 久久99999| 亚洲最新免费视频| 四虎精品欧美一区二区免费| 中文字幕超清在线免费观看| 91成人在线视频观看| 日本香蕉视频在线观看| 日韩黄色短视频| 亚洲国产精品毛片av不卡在线| 天天色综合天天色| 一级一片免费播放| 男人添女人下部高潮视频在观看| av免费观看大全| 最近中文字幕一区二区| 99re8这里只有精品| 久久综合色视频| av网站在线不卡| 黄色网址在线免费看| 成人一区二区免费视频| 中文字幕第36页| 亚洲av综合色区| 粗暴91大变态调教| www.黄色网址.com| 国产精品亚洲αv天堂无码| aaa一级黄色片| 日本日本19xxxⅹhd乱影响| 中文字幕丰满乱码| 欧美大片在线播放| 中文字幕一区二区在线观看视频 | 中文字幕精品一区二区三区在线| 免费国产成人看片在线| 国产黄色一级网站| 爱豆国产剧免费观看大全剧苏畅| 欧美一级免费播放| 9999在线观看| 成人性视频欧美一区二区三区| 最新av网址在线观看| 精品日韩久久久| aa在线免费观看| 丁香色欲久久久久久综合网| 欧美日韩中文不卡| 国产欧美高清在线| 久久99中文字幕| 国产欧美自拍视频| 天堂视频免费看| 日韩毛片在线免费看| 欧美,日韩,国产在线| 日韩一级特黄毛片| 日本高清免费在线视频| 99sesese| 老司机午夜性大片| 手机在线看福利| 日本新janpanese乱熟| 黄色片久久久久| 久久久久久久久久久福利| a级黄色一级片| 奇米影视亚洲色图| 日韩欧美国产综合在线|