本發(fā)明實施例涉及數(shù)據(jù)處理技術(shù),尤其涉及一種防止語音命令誤識別的方法和裝置。
背景技術(shù):
隨著科學(xué)技術(shù)的不斷發(fā)展,以及人們對生活品質(zhì)不斷的更高追求,越來越多的設(shè)備具有語音控制功能。
汽車、家用電器以及手機中大多數(shù)都會安裝語音控制功能,這些設(shè)備同時也可以播放歌曲、相聲等音頻文件,在這些設(shè)備在播放音頻文件時,有可能會誤開啟語音控制功能,使得設(shè)備做出錯誤的動作。現(xiàn)有技術(shù)中通過提高語音識別算法的復(fù)雜度,優(yōu)化語音識別算法,減小誤觸發(fā)的概率。
現(xiàn)有技術(shù)的缺陷在于:提高了CPU的計算負擔(dān)導(dǎo)致設(shè)備功耗上升,語音識別算法移植困難,且無法從根本上避免誤觸發(fā)的可能性。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供了一種防止語音命令誤識別的方法和裝置,以優(yōu)化現(xiàn)有的減小語音誤觸發(fā)概率技術(shù),實現(xiàn)了無需提高語音識別算法的復(fù)雜度,也可以可靠的減少由于歌曲歌詞導(dǎo)致的語音誤識別。
在第一方面,本發(fā)明實施例提供了一種防止語音命令誤識別的方法,包括:
獲取與待播放歌曲匹配的歌詞文件;
查找所述歌詞文件中的易誤觸發(fā)詞組,其中,所述易誤觸發(fā)詞組與預(yù)設(shè)語音控制命令的語言相同或相近;
根據(jù)所述歌詞文件,計算所述易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間;
播放所述待播放歌曲,在到達所述第一起始時間時關(guān)閉語音識別模塊,在到達所述第一結(jié)束時間時啟動所述語音識別模塊。
在上述方法中,優(yōu)選的是,所述播放所述待播放歌曲,在到達所述第一起始時間時關(guān)閉語音識別模塊,在到達所述第一結(jié)束時間時啟動所述語音識別模塊之后,還包括:
保存所述易誤觸發(fā)詞組和對應(yīng)的所述第一起始時間和所述第一結(jié)束時間;
所述根據(jù)所述歌詞文件,計算所述易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間之前,還包括:
確認所述歌詞文件不存在已保存的所述易誤觸發(fā)詞組;
所述播放所述待播放歌曲,在到達所述第一起始時間時關(guān)閉語音識別模塊,在到達所述第一結(jié)束時間時啟動所述語音識別模塊之前,還包括:
若存在已保存的所述易誤觸發(fā)詞組,讀取所述待播放歌曲中所述易誤觸發(fā)詞組對應(yīng)的所述第一起始時間和所述第一結(jié)束時間。
在上述方法中,優(yōu)選的是,所述歌詞文件為中文歌詞文件;
所述預(yù)設(shè)語音控制命令為漢語語音控制命令;
所述查找所述歌詞文件中的易誤觸發(fā)詞組包括:
遍歷所述中文歌詞文件中所有中文歌詞的發(fā)音屬性,其中,所述發(fā)音屬性至少包括音調(diào)、聲母和韻母;
如果所述所有中文歌詞中的一個漢字或一個漢字詞組中的各個漢字均與所述漢語語音控制命令中對應(yīng)位置的漢字的所述發(fā)音屬性相同,則確認該漢字或漢字詞組與所述漢語語音控制命令的語言相同;
如果所述所有中文歌詞中的一個漢字或一個漢字詞組中的各個漢字均與所述漢語語音控制命令中對應(yīng)位置的漢字的所述發(fā)音屬性中至少有一種不同且至少有兩種相同,則確認該漢字或漢字詞組與所述漢語語音控制命令的語言相近;
將所述一個漢字或所述一個漢字詞組標記為易誤觸發(fā)詞組。
在上述方法中,優(yōu)選的是,所述根據(jù)所述歌詞文件,計算所述易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間包括:
根據(jù)所述歌詞文件,獲取所述易誤觸發(fā)詞組所屬的歌詞語句播放的第二起始時間和第二結(jié)束時間;
根據(jù)所述第二起始時間、所述第二結(jié)束時間、所述歌詞語句包含歌詞單元的個數(shù)、所述易誤觸發(fā)詞組包含歌詞單元的個數(shù)和所述易誤觸發(fā)詞組在所述歌詞語句中的位置,計算所述易誤觸發(fā)詞組播放的所述第一起始時間和所述第一結(jié)束時間。
在上述方法中,優(yōu)選的是,所述根據(jù)所述歌詞文件,計算所述易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間包括:
根據(jù)所述歌詞文件,獲取所述易誤觸發(fā)詞組所屬的歌詞語句播放的所述第二起始時間和所述第二結(jié)束時間;
獲取所述第一起始時間的第一補償時間和所述第一結(jié)束時間的第二補償時間;
根據(jù)所述第二起始時間、所述第二結(jié)束時間、所述第一補償時間、所述第二補償時間、所述歌詞語句包含歌詞單元的個數(shù)、所述易誤觸發(fā)詞組包含歌詞單元的個數(shù)和所述易誤觸發(fā)詞組在所述歌詞語句中的位置,計算所述易誤觸發(fā)詞組播放的所述第一起始時間和所述第一結(jié)束時間。
在上述方法中,優(yōu)選的是,還包括:
所述待播放歌曲播放結(jié)束后,統(tǒng)計引起和未引起所述預(yù)設(shè)語音控制命令誤識別的所述易誤觸發(fā)詞組;
修正所述易誤觸發(fā)詞組對應(yīng)的所述第一補償時間和所述第二補償時間,重新計算所述易誤觸發(fā)詞組播放的所述第一起始時間和所述第一結(jié)束時間。
在第二方面,本發(fā)明實施例提供了一種防止語音命令誤識別的裝置,包括:
歌詞文件獲取模塊,用于獲取與待播放歌曲匹配的歌詞文件;
易誤觸發(fā)詞組查找模塊,用于查找所述歌詞文件中的易誤觸發(fā)詞組,其中,所述易誤觸發(fā)詞組與預(yù)設(shè)語音控制命令的語言相同或相近;
播放時間計算模塊,用于根據(jù)所述歌詞文件,計算所述易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間;
語音識別模塊控制模塊,用于播放所述待播放歌曲,在到達所述第一起始時間時關(guān)閉語音識別模塊,在到達所述第一結(jié)束時間時啟動所述語音識別模塊。
在上述裝置中,優(yōu)選的是,所述語音識別模塊控制模塊之后,還包括:
播放時間保存模塊,用于保存所述易誤觸發(fā)詞組和對應(yīng)的所述第一起始時間和所述第一結(jié)束時間;
所述播放時間計算模塊之前,還包括:
易誤觸發(fā)詞組確認模塊,用于確認所述歌詞文件不存在已保存的所述易誤觸發(fā)詞組;
所述語音識別模塊控制模塊之前,還包括:
播放時間讀取模塊,用于若存在已保存的所述易誤觸發(fā)詞組,讀取所述待播放歌曲中所述易誤觸發(fā)詞組對應(yīng)的所述第一起始時間和所述第一結(jié)束時間。
在上述裝置中,優(yōu)選的是,所述歌詞文件為中文歌詞文件;
所述預(yù)設(shè)語音控制命令為漢語語音控制命令;
所述易誤觸發(fā)詞組查找模塊包括:
歌詞遍歷單元,用于遍歷所述中文歌詞文件中所有中文歌詞的發(fā)音屬性,其中,所述發(fā)音屬性至少包括音調(diào)、聲母和韻母;
相同詞組確認單元,用于如果所述所有中文歌詞中的一個漢字或一個漢字詞組中的各個漢字均與所述漢語語音控制命令中對應(yīng)位置的漢字的所述發(fā)音屬性相同,則確認該漢字或漢字詞組與所述漢語語音控制命令的語言相同;
相近詞組確認單元,用于如果所述所有中文歌詞中的一個漢字或一個漢字詞組中的各個漢字均與所述漢語語音控制命令中對應(yīng)位置的漢字的所述發(fā)音屬性中至少有一種不同且至少有兩種相同,則確認該漢字或漢字詞組與所述漢語語音控制命令的語言相近;
易誤觸發(fā)詞組標記單元,用于將所述一個漢字或所述一個漢字詞組標記為易誤觸發(fā)詞組。
在上述裝置中,優(yōu)選的是,所述播放時間計算模塊包括:
第二播放時間確定單元,用于根據(jù)所述歌詞文件,獲取所述易誤觸發(fā)詞組所屬的歌詞語句播放的第二起始時間和第二結(jié)束時間;
第一播放時間計算單元,用于根據(jù)所述第二起始時間、所述第二結(jié)束時間、所述歌詞語句包含歌詞單元的個數(shù)、所述易誤觸發(fā)詞組包含歌詞單元的個數(shù)和所述易誤觸發(fā)詞組在所述歌詞語句中的位置,計算所述易誤觸發(fā)詞組播放的所述第一起始時間和所述第一結(jié)束時間。
在上述裝置中,優(yōu)選的是,所述播放時間計算模塊包括:
第二播放時間確定單元,用于根據(jù)所述歌詞文件,獲取所述易誤觸發(fā)詞組所屬的歌詞語句播放的所述第二起始時間和所述第二結(jié)束時間;
補償時間獲取單元,用于獲取所述第一起始時間的第一補償時間和所述第一結(jié)束時間的第二補償時間;
第二播放時間計算單元,用于根據(jù)所述第二起始時間、所述第二結(jié)束時間、所述第一補償時間、所述第二補償時間、所述歌詞語句包含歌詞單元的個數(shù)、所述易誤觸發(fā)詞組包含歌詞單元的個數(shù)和所述易誤觸發(fā)詞組在所述歌詞語句中的位置,計算所述易誤觸發(fā)詞組播放的所述第一起始時間和所述第一結(jié)束時間。
在上述裝置中,優(yōu)選的是,還包括:
誤識別統(tǒng)計模塊,用于所述待播放歌曲播放結(jié)束后,統(tǒng)計引起和未引起所述預(yù)設(shè)語音控制命令誤識別的所述易誤觸發(fā)詞組;
補償時間修正模塊,用于修正所述易誤觸發(fā)詞組對應(yīng)的所述第一補償時間和所述第二補償時間,重新計算所述易誤觸發(fā)詞組播放的所述第一起始時間和所述第一結(jié)束時間。
本發(fā)明實施例提供的防止語音命令誤識別的方法和裝置,通過先獲取與待播放歌曲匹配的歌詞文件,然后查找歌詞文件中的易誤觸發(fā)詞組,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間,最后播放待播放歌曲,在到達第一起始時間時關(guān)閉語音識別模塊,在到達第一結(jié)束時間時啟動語音識別模塊,克服了現(xiàn)有技術(shù)中為了減小語音誤觸發(fā)的概率,進而增加語音識別算法的復(fù)雜度,導(dǎo)致處理器計算負擔(dān)增加、設(shè)備功耗上升以及語音識別算法移植困難的技術(shù)缺陷,實現(xiàn)了無需提高語音識別算法的復(fù)雜度,也可以可靠地減少由于播放歌曲導(dǎo)致的語音誤識別。
附圖說明
圖1是本發(fā)明實施例一提供的一種防止語音誤識別的方法的流程圖;
圖2是本發(fā)明實施例二提供的一種防止語音誤識別的方法的流程圖;
圖3是本發(fā)明實施例三提供的一種防止語音誤識別的方法的流程圖;
圖4是本發(fā)明實施例四提供的一種防止語音誤識別的裝置的結(jié)構(gòu)圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明具體實施例作進一步的詳細描述??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。
另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部內(nèi)容。在更加詳細地討論示例性實施例之前應(yīng)當提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各項操作(或步驟)描述成順序的處理,但是其中的許多操作可以被并行地、并發(fā)地或者同時實施。此外,各項操作的順序可以被重新安排。當其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。
實施例一
圖1為本發(fā)明實施例一提供的一種防止語音命令誤識別的方法的流程圖,本實施例的方法可以由防止語音誤識別裝置來執(zhí)行,該裝置可通過硬件和/或軟件的方式實現(xiàn),并一般可集成于具有語音命令控制功能且可以播放音頻文件的設(shè)備中,例如:手機、汽車等。本實施例的方法具體包括:
步驟110、獲取與待播放歌曲匹配的歌詞文件。
一般來說,在現(xiàn)有技術(shù)中,同時具有語音命令控制功能和音頻文件播放功能的設(shè)備,在獲取到播放音頻文件的命令時,都是直接進行播放,而不會在播放前,進行減小由于播放歌曲導(dǎo)致的語音命令誤識別的操作。
在本實施例中,在播放待播放歌曲前,會先獲取與待播放歌曲匹配的歌詞文件。其中,獲取的方式具體可以是從本地存儲的歌詞文件中獲取,也可以通過互聯(lián)網(wǎng)絡(luò)從存儲有所需歌詞文件的服務(wù)器中獲取,本實施例對此不進行限制。
其中,歌詞文件具體是指包含待播放歌曲的所有歌詞以及每句歌詞的起始時間等信息的文件。典型的可以是:后綴名為.LRC、.SNC以及.KRC等的文件。
另外,本方案中所說的歌詞并不限定于歌手演唱的歌曲的歌詞,也包括其它音頻文件中可能導(dǎo)致誤識別的內(nèi)容,例如朗誦、演講等以聲音播放為顯示方式,同時朗誦稿或演講稿可以以歌詞文件的方式體現(xiàn)的多媒體內(nèi)容。
步驟120、查找歌詞文件中的易誤觸發(fā)詞組,其中,易誤觸發(fā)詞組與預(yù)設(shè)語音控制命令的語言相同或相近。
在本實施例中,易誤觸發(fā)詞組具體是指可能會引起預(yù)設(shè)語音控制命令誤觸發(fā)的詞組,也就是發(fā)音與預(yù)設(shè)語音控制命令的語言的發(fā)音相同或相近的詞組。其中,預(yù)設(shè)語音控制命令具體是指預(yù)先存儲的,可以用來實施語音控制的語言。
由于歌詞中可能會存在易誤觸發(fā)詞組,導(dǎo)致歌曲在播放的過程中,引起語音控制命令誤識別,做出錯誤的操作,因此,在本實施例中,獲取待播放歌曲的歌詞文件后,首先會查找該歌詞文件中的歌詞是否包含有易誤觸發(fā)詞組。
其中,查找易誤觸發(fā)詞組的具體方式可以是遍歷歌詞文件中的所有歌詞查找與預(yù)設(shè)的語音控制命令中每個漢字的音調(diào)、聲母以及韻母均相同的詞組做為易誤觸發(fā)詞組,也可以是遍歷歌詞文件中的所有歌詞查找與預(yù)設(shè)的語音控制命令中每個英文單詞的音標均相同的詞組做為易誤觸發(fā)詞組等方式。其中,遍歷歌詞文件中的所有歌詞查找易誤觸發(fā)詞組的方式可以是在遍歷一遍所有歌詞的同時只針對一個預(yù)設(shè)語音控制命令查找與之對應(yīng)的易誤觸發(fā)詞組,也就是說,有多少個預(yù)設(shè)的語音控制命令就要遍歷多少遍所有歌詞,也可以是只遍歷一遍所有歌詞,在遍歷的同時與所有的預(yù)設(shè)語音控制命令相比較查找易誤觸發(fā)詞組,也就是說,每遍歷到歌詞中的任意一個字或詞時都要與所有的預(yù)設(shè)語音控制命令進行對比。
另外需要說明的是,上面僅對歌詞為漢語和英語的兩種情況進行了說明,當歌詞為漢語和英語以外的語言時,本實施例的方法同樣適用,因為無論是哪一種語言,都對應(yīng)有本語言特有的音素集,而本語言的所有單個字或單個詞的發(fā)音都是由本語言特有的一個或多個音素構(gòu)成,在查找易誤觸發(fā)詞組時,就可以使用本語言特有的音素作為比對的基礎(chǔ),當某個字或某個詞組與預(yù)設(shè)語音控制命令中每個字或每個詞的音素都相同或相近時,則判定該字或該詞組為易誤觸發(fā)詞組。
步驟130、根據(jù)歌詞文件,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間。
在本實施例中,第一起始時間具體是指易誤觸發(fā)詞組開始播放的時間,第一結(jié)束時間具體是指易誤觸發(fā)詞組結(jié)束播放的時間,其中,第一起始時間和第一結(jié)束時間都是相對于待播放歌曲的起始播放時間計算出來的具體時間,待播放歌曲的起始播放時間可以記錄為0分0秒0毫秒或0分0秒等時間格式。
在本實施例中,由于在查找易誤觸發(fā)詞組時,可以同時獲知該易誤觸發(fā)詞組在歌詞中的具體位置(例如:在第五句歌詞的第3至第6個字),并且根據(jù)歌詞文件可以獲知每句歌詞的起始播放時間等時間信息,因此,根據(jù)易誤觸發(fā)詞組在歌詞中的具體位置以及每句歌詞的起始播放時間等時間信息可以較為容易地計算出易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間。
進一步地,由于不能保證每一句歌詞都是勻速播放的,且歌詞文件中一般不會詳細記錄每一個字或詞的起始播放時間,一般只記錄每句歌詞的起始播放時間,所以,在計算第一起始時間和第一結(jié)束時間時,如果默認每一句歌詞中的所有字或詞都是勻速播放的,計算結(jié)果可能會跟易誤觸發(fā)詞組實際的起始播放時間和結(jié)束播放時間有一定誤差,因此,可以對計算得到的第一起始時間和第一結(jié)束時間略作調(diào)整,使他們更加接近易誤觸發(fā)詞組實際的起始播放時間和結(jié)束播放時間。其中,調(diào)整的方式可以是設(shè)置補償時間,將計算得到的第一起始時間減去該補償時間,第一結(jié)束時間加上該補償時間,第一起始時間和第一結(jié)束時間的補償時間可以相同,也可以不相同,本實施例對此不進行限制。
步驟140、播放待播放歌曲,在到達第一起始時間時關(guān)閉語音識別模塊,在到達第一結(jié)束時間時啟動語音識別模塊。
在本實施例中,在完成計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間后,開始播放待播放歌曲,在播放該歌曲時,當?shù)竭_第一起始時間時,就會關(guān)閉語音識別模塊,以防止易誤觸發(fā)詞組的播放引起語音誤識別,導(dǎo)致做出錯誤的操作,當?shù)竭_第一結(jié)束時間時就會開啟語音識別模塊,以便實時進行語音控制命令的識別。
本發(fā)明實施例提供的防止語音命令誤識別的方法,通過先獲取與待播放歌曲匹配的歌詞文件,然后查找歌詞文件中的易誤觸發(fā)詞組,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間,最后播放待播放歌曲,在到達第一起始時間時關(guān)閉語音識別模塊,在到達第一結(jié)束時間時啟動語音識別模塊,克服了現(xiàn)有技術(shù)中為了減小語音誤觸發(fā)的概率,進而增加語音識別算法的復(fù)雜度,導(dǎo)致處理器計算負擔(dān)增加、設(shè)備功耗上升以及語音識別算法移植困難的技術(shù)缺陷,實現(xiàn)了無需提高語音識別算法的復(fù)雜度,也可以可靠地減少由于播放歌曲導(dǎo)致的語音誤識別。
實施例二
圖2是本發(fā)明實施例二提供的一種防止語音命令誤識別的方法的流程圖。本實施例以上述實施例為基礎(chǔ)進行優(yōu)化,在本實施例中,將歌詞文件優(yōu)化為中文歌詞文件;
將預(yù)設(shè)語音控制命令優(yōu)化為漢語語音控制命令;
相應(yīng)的,將查找歌詞文件中的易誤觸發(fā)詞組優(yōu)化為:遍歷中文歌詞文件中所有中文歌詞的發(fā)音屬性,其中,發(fā)音屬性至少包括音調(diào)、聲母和韻母;如果所有中文歌詞中的一個漢字或一個漢字詞組中的各個漢字均與漢語語音控制命令中對應(yīng)位置的漢字的發(fā)音屬性相同,則確認該漢字或漢字詞組與漢語語音控制命令的語言相同;如果所有中文歌詞中的一個漢字或一個漢字詞組中的各個漢字均與漢語語音控制命令中對應(yīng)位置的漢字的發(fā)音屬性中至少有一種不同且至少有兩種相同,則確認該漢字或漢字詞組與漢語語音控制命令的語言相近;將一個漢字或一個漢字詞組標記為易誤觸發(fā)詞組。
進一步地,將根據(jù)歌詞文件,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間優(yōu)化為:根據(jù)歌詞文件,獲取易誤觸發(fā)詞組所屬的歌詞語句播放的第二起始時間和第二結(jié)束時間;根據(jù)第二起始時間、第二結(jié)束時間、歌詞語句包含歌詞單元的個數(shù)、易誤觸發(fā)詞組包含歌詞單元的個數(shù)和易誤觸發(fā)詞組在歌詞語句中的位置,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間。
進一步地,在播放待播放歌曲,在到達第一起始時間時關(guān)閉語音識別模塊,在到達第一結(jié)束時間時啟動語音識別模塊之后,還可以包括:保存易誤觸發(fā)詞組和對應(yīng)的第一起始時間和第一結(jié)束時間。
相應(yīng)的,在根據(jù)歌詞文件,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間之前,還可以包括:確認歌詞文件不存在已保存的易誤觸發(fā)詞組。
相應(yīng)的,在播放待播放歌曲,在到達第一起始時間時關(guān)閉語音識別模塊,在到達第一結(jié)束時間時啟動語音識別模塊之前,還可以包括:若存在已保存的易誤觸發(fā)詞組,讀取待播放歌曲中易誤觸發(fā)詞組對應(yīng)的第一起始時間和第一結(jié)束時間。
相應(yīng)的,本實施例的方法具體包括:
步驟201、獲取與待播放歌曲匹配的中文歌詞文件。
在本實施例中,待播放歌曲的歌詞為中文,匹配的歌詞文件為中文歌詞文件。
步驟202、判斷中文歌詞文件是否存在已保存的易誤觸發(fā)詞組,若不存在,則執(zhí)行步驟203,若存在,則執(zhí)行步驟209。
在本實施例中,如果待播放歌曲之前播放過,那么就會存在已保存的易誤觸發(fā)詞組以及對應(yīng)的第一起始時間和第一結(jié)束時間,此時,就無需再查找中文歌詞中的易誤觸發(fā)詞組和計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間,可以直接調(diào)用之前保存的相關(guān)內(nèi)容。
步驟203、遍歷中文歌詞文件中所有中文歌詞的發(fā)音屬性,其中,發(fā)音屬性至少包括音調(diào)、聲母和韻母。
在本實施例中,如果中文歌詞文件不存在已保存的易誤觸發(fā)詞組,則要從中文歌詞中查找易誤觸發(fā)詞組,查找易誤觸發(fā)詞組的具體方式為遍歷中文歌詞中的每一個漢字的發(fā)音屬性,根據(jù)該漢字與漢語語音控制命令的語言的發(fā)音屬性的匹配程度,判定該漢字是否為或是否屬于易誤觸發(fā)詞組。
其中,發(fā)音屬性具體是指由音調(diào)、聲母和韻母等與發(fā)音相關(guān)的屬性組成的屬性集合。中文歌詞中漢字的發(fā)音屬性具體可以從中文歌詞文件中獲取,也可以通過互聯(lián)網(wǎng)絡(luò)從服務(wù)器中下載,本實施例對此不進行限制。
步驟204、確認與漢語語音控制命令的語言相同的漢字或漢字詞組,具體地,如果所有中文歌詞中的一個漢字或一個漢字詞組中的各個漢字均與漢語語音控制命令中對應(yīng)位置的漢字的發(fā)音屬性相同,則確認該漢字或漢字詞組與漢語語音控制命令的語言相同。
在一個具體的例子中,當進行對比的漢語語音控制命令為“開”時,在遍歷中文歌詞文件時,查找到中文歌詞文件中有一個漢字的發(fā)音屬性與“開”字的發(fā)音屬性相同,則將中文歌詞文件中的該漢字確認為易誤觸發(fā)詞組。
在一個具體的例子中,當進行對比的漢語語音控制命令為“增加音量”時,在遍歷中文歌詞文件時,查找到中文歌詞文件中有一個漢字A的發(fā)音屬性與“增”字的發(fā)音屬性相同,則繼續(xù)判斷漢字A后面的漢字B的發(fā)音屬性是否與“加”字相同,若不相同,則認為由漢字A和漢字B組成的詞組不是對應(yīng)“增加音量”的易誤觸發(fā)詞組;若相同,則繼續(xù)判斷漢字B后面的漢字C的發(fā)音屬性是否與“音”字的發(fā)音屬性相同,若不相同,則認為由漢字A、B和C組成的詞組不是對應(yīng)“增加音量”的易誤觸發(fā)詞組;若相同,則繼續(xù)判斷漢字C后面的漢字D的發(fā)音屬性是否與“量”字的發(fā)音屬性相同,若不相同,則認為由漢字A、B、C和D組成的詞組不是對應(yīng)“增加音量”的易誤觸發(fā)詞組;若相同,則認為由漢字A、B、C和D組成的詞組是對應(yīng)“增加音量”的易誤觸發(fā)詞組。
步驟205、確認與漢語語音控制命令的語言相近的漢字或漢字詞組,具體地,如果所有中文歌詞中的一個漢字或一個漢字詞組中的各個漢字均與漢語語音控制命令中對應(yīng)位置的漢字的發(fā)音屬性中至少有一種不同且至少有兩種相同,則確認該漢字或漢字詞組與漢語語音控制命令的語言相近。
在本實施例中,在查找與漢語語音控制命令的語言相近的漢字或漢字詞組時,只要該漢字或漢字詞組的發(fā)音屬性與漢語語音控制命令中對應(yīng)位置的漢字的發(fā)音屬性中至少有一種不同且至少有兩種相同,就認為該漢字或漢字詞組為易誤觸發(fā)詞組。
舉例而言,漢語語音控制命令為“關(guān)燈”,中文歌詞中有緊鄰的兩個漢字A和B,漢字A的音調(diào)和聲母與“關(guān)”字的音調(diào)和聲母相同且漢字A的韻母與“關(guān)”字的韻母不同,漢字B的聲母和韻母與“燈”字的聲母和韻母相同且漢字B的音調(diào)與“燈”字的音調(diào)不同,則認為由漢字A和B組成的詞組是對應(yīng)“關(guān)燈”的易誤觸發(fā)詞組。
相應(yīng)的,判斷中文歌詞中的一個漢字或一個漢字詞組是否是易誤觸發(fā)詞組的具體方法與步驟204中所舉的兩個例子相同,在此不再詳述,只是本步驟中該漢字或漢字詞組的發(fā)音屬性中至少有一種應(yīng)與對應(yīng)的漢語語音控制命令中對應(yīng)位置的漢字不同且至少有兩種應(yīng)與對應(yīng)的漢語語音控制命令中對應(yīng)位置的漢字相同才滿足判定為易誤觸發(fā)詞組的條件。
步驟206、將一個漢字或一個漢字詞組標記為易誤觸發(fā)詞組。
在本實施例中,當確定中文歌詞中的所有易誤觸發(fā)詞組后,需要對這些易誤觸發(fā)詞組進行標記,標記方法具體可以是直接在中文歌詞文件中直接進行標注,也可以是將易誤觸發(fā)詞組的相關(guān)信息存儲在另外一個可識別的文件中,本實施例對此不進行限制。
步驟207、根據(jù)歌詞文件,獲取易誤觸發(fā)詞組所屬的歌詞語句播放的第二起始時間和第二結(jié)束時間。
在本實施例中,歌詞語句播放的第二起始時間和第二結(jié)束時間具體是指該歌詞語句播放的起始時間和結(jié)束時間,其中,第二起始時間和第二結(jié)束時間都是相對于待播放歌曲的起始播放時間計算出來的具體時間。
在本實施例中,在查找到易誤觸發(fā)詞組的同時,會相應(yīng)地記錄下易誤觸發(fā)詞組所屬的歌詞語句,以及其在該歌詞語句中的位置。相應(yīng)的,如果標記易誤觸發(fā)詞組時,是直接在中文歌詞文件中直接進行標注,那么很容易獲知易誤觸發(fā)詞組所屬的歌詞語句以及在該歌詞語句中的位置;如果標記易誤觸發(fā)詞組時,是將易誤觸發(fā)詞組的相關(guān)信息存儲在另外一個可識別的文件中,那么要在該文件中同時記錄下易誤觸發(fā)詞組所屬的歌詞語句以及在該歌詞語句中的位置。
本領(lǐng)域技術(shù)人員可以理解的是,歌詞文件中一般都會記錄每一句歌詞播放的起始時間,同時還會記錄每一句歌詞播放的時間長度或每一句歌詞播放的結(jié)束時間,因此,當易誤觸發(fā)詞組所屬的歌詞語句已經(jīng)確定的情況下,根據(jù)歌詞文件可以較為容易地獲取或計算出易誤觸發(fā)詞組所屬的歌詞語句播放的第二起始時間和第二結(jié)束時間。但是,LRC歌詞文件只記錄每句歌詞的播放起始時間而不記錄每句歌詞的結(jié)束時間或播放的時間長度,因此,當待播放歌曲匹配的歌詞文件的類型為LRC文件時,則默認下一句歌詞的播放起始時間為上一句歌詞的播放結(jié)束時間。
步驟208、計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間,具體地,根據(jù)第二起始時間、第二結(jié)束時間、歌詞語句包含歌詞單元的個數(shù)、易誤觸發(fā)詞組包含歌詞單元的個數(shù)和易誤觸發(fā)詞組在歌詞語句中的位置,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間。
在本實施例中,歌詞單元具體是指組成歌詞的基本單位,例如:中文歌詞文件的歌詞單元為漢字、英文歌詞文件的歌詞單元為英文單詞等。
在一個具體的例子中,假設(shè)每一句歌詞都是以勻速演唱,易誤觸發(fā)詞組所在歌詞語句的起始播放時間為t1,結(jié)束播放時間為t2,該歌詞語句共有10個漢字,該易誤觸發(fā)詞組位于該歌詞語句的第3、4、5個字,那么,該易誤觸發(fā)詞組的第一起始時間T1和第一結(jié)束時間T2的計算公式分別為:
T1=t1+2[(t2-t1)/10]、T2=t1+5[(t2-t1)/10]。
步驟209、讀取待播放歌曲中易誤觸發(fā)詞組對應(yīng)的第一起始時間和第一結(jié)束時間。
在本實施例中,如果中文歌詞文件存在已保存的易誤觸發(fā)詞組,則無需重新查找易誤觸發(fā)詞組,只需直接調(diào)用該已保存的易誤觸發(fā)詞組。
步驟210、播放待播放歌曲,在到達第一起始時間時關(guān)閉語音識別模塊,在到達第一結(jié)束時間時啟動語音識別模塊。
步驟211、保存易誤觸發(fā)詞組和對應(yīng)的第一起始時間和第一結(jié)束時間。
在本實施例中,待播放歌曲播放完畢后,需要保存易誤觸發(fā)詞組和對應(yīng)的第一起始時間和第一結(jié)束時間,以便下次播放一首歌曲時直接調(diào)用。
本發(fā)明實施例提供的防止語音命令誤識別的方法,通過先獲取與待播放歌曲匹配的歌詞文件,根據(jù)歌詞文件是、否存在已保存的易誤觸發(fā)詞組,分別進行直接讀取易誤觸發(fā)詞組及其對應(yīng)的第一起始時間和第一結(jié)束時間的操作,以及通過遍歷歌詞中所有漢字的發(fā)音屬性確定易誤觸發(fā)詞組、獲取易誤觸發(fā)詞組所屬的歌詞語句播放的第二起始時間和第二結(jié)束時間,并計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間的操作,然后播放待播放歌曲并適時關(guān)、開語音識別模塊,最后保存易誤觸發(fā)詞組和對應(yīng)的第一起始時間和第一結(jié)束時間,克服了現(xiàn)有技術(shù)中為了減小語音誤觸發(fā)的概率,進而增加語音識別算法的復(fù)雜度,導(dǎo)致處理器計算負擔(dān)增加、設(shè)備功耗上升以及語音識別算法移植困難的技術(shù)缺陷,實現(xiàn)了無需提高語音識別算法的復(fù)雜度,也可以可靠地減少由于播放歌曲導(dǎo)致的語音誤識別。
實施例三
圖3是本發(fā)明實施例三提供的一種防止語音命令誤識別的方法的流程圖。本實施例以上述實施例為基礎(chǔ)進行優(yōu)化,在本實施例中,將根據(jù)歌詞文件,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間優(yōu)化為:根據(jù)歌詞文件,獲取易誤觸發(fā)詞組所屬的歌詞語句播放的第二起始時間和第二結(jié)束時間;獲取第一起始時間的第一補償時間和第一結(jié)束時間的第二補償時間;根據(jù)第二起始時間、第二結(jié)束時間、第一補償時間、第二補償時間、歌詞語句包含歌詞單元的個數(shù)、易誤觸發(fā)詞組包含歌詞單元的個數(shù)和易誤觸發(fā)詞組在歌詞語句中的位置,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間。
進一步地,還可以包括:待播放歌曲播放結(jié)束后,統(tǒng)計引起和未引起預(yù)設(shè)語音控制命令誤識別的易誤觸發(fā)詞組;修正易誤觸發(fā)詞組對應(yīng)的第一補償時間和第二補償時間,重新計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間。
相應(yīng)的,本實施例的方法具體包括:
步驟301、獲取與待播放歌曲匹配的歌詞文件。
步驟302、判斷中文歌詞文件是否存在已保存的易誤觸發(fā)詞組,若不存在,則執(zhí)行步驟303,若存在,則執(zhí)行步驟307。
步驟303、查找歌詞文件中的易誤觸發(fā)詞組,其中,易誤觸發(fā)詞組與預(yù)設(shè)語音控制命令的語言相同或相近。
步驟304、根據(jù)歌詞文件,獲取易誤觸發(fā)詞組所屬的歌詞語句播放的第二起始時間和第二結(jié)束時間。
步驟305、獲取第一起始時間的第一補償時間和第一結(jié)束時間的第二補償時間。
根據(jù)實施例一中的說明可知,如果假設(shè)待播放歌曲是完全勻速播放的,那么按照這種情況計算出來的易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間可能與實際情況有誤差,因此,為了使易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間更加準確,本實施例中增加了第一補償時間和第二補償時間,以對易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間進行修正。
其中,第一補償時間具體用于調(diào)整第一起始時間,第二補償時間具體用于調(diào)整第一結(jié)束時間,第一補償時間和第二補償時間可以相同,也可以不同,本實施例對此不進行限制。第一補償時間和第二補償時間的具體數(shù)值可以是經(jīng)驗數(shù)值(例如:1秒鐘等),也可在合理的范圍內(nèi)隨意設(shè)置。
另外,由于LRC歌詞文件只記錄每句歌詞的播放起始時間而不記錄每句歌詞的結(jié)束時間或播放的時間長度,因此,當待播放歌曲匹配的歌詞文件的類型為LRC文件時,且當易誤觸發(fā)詞組所在的歌詞語句與下一歌詞語句之間有音樂伴奏時,如果默認下一句歌詞的播放起始時間為上一句歌詞的播放結(jié)束時間,那么該上一句歌詞默認的播放結(jié)束時間與實際的播放結(jié)束時間不相同,因此,按照默認的下一句歌詞的播放起始時間為上一句歌詞的播放結(jié)束時間計算出來的所需時間點與實際的時間點有誤差,補償時間的引入可以減小甚至消滅這種誤差。
步驟306、計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間,具體地,根據(jù)第二起始時間、第二結(jié)束時間、第一補償時間、第二補償時間、歌詞語句包含歌詞單元的個數(shù)、易誤觸發(fā)詞組包含歌詞單元的個數(shù)和易誤觸發(fā)詞組在歌詞語句中的位置,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間。
在本實施例中,計算易誤觸發(fā)詞組播放的第一起始時間T1’和第一結(jié)束時間T2’的方法為:首先計算出易誤觸發(fā)詞組不考慮補償時間時的播放的第一起始時間T1和第一結(jié)束時間T2,具體步驟可以參見步驟208中的具體說明,然后根據(jù)第一補償時間T’和第二補償時間T”計算T1’和T2’,公式為:
T1'=T1-T',T2'=T2+T”,其中,T’和T”均為正數(shù)。
步驟307、讀取待播放歌曲中易誤觸發(fā)詞組對應(yīng)的第一起始時間和第一結(jié)束時間。
步驟308、播放待播放歌曲,在到達第一起始時間時關(guān)閉語音識別模塊,在到達第一結(jié)束時間時啟動語音識別模塊。
步驟309、待播放歌曲播放結(jié)束后,統(tǒng)計引起和未引起預(yù)設(shè)語音控制命令誤識別的易誤觸發(fā)詞組。
在本實施例中,待播放歌曲播放結(jié)束后,會對引起和未引起預(yù)設(shè)語音控制命令誤識別的易誤觸發(fā)詞組進行統(tǒng)計。
步驟310、修正易誤觸發(fā)詞組對應(yīng)的第一補償時間和第二補償時間,重新計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間。
在本實施例中,當易誤觸發(fā)詞組在待播放歌曲的播放過程中引起了預(yù)設(shè)語音控制命令的誤識別,則認為該易誤觸發(fā)詞組對應(yīng)的第一起始時間和第一結(jié)束時間不準確,需要進行調(diào)整。調(diào)整的方法具體可以是將第一補償時間和第二補償時間相應(yīng)增大,兩者增大的時間量可以相同,也可以不同,例如可以將第一補償時間和第二補償時間同時增加10%,然后使用增加后的第一補償時間和第二補償時間重新計算該易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間。
在本實施例中,當易誤觸發(fā)詞組在待播放歌曲的播放過程中沒有引起了預(yù)設(shè)語音控制命令的誤識別,則可以相應(yīng)減小第一補償時間和第二補償時間的數(shù)值,兩者減小的時間量可以相同,也可以不同,例如可以將第一補償時間和第二補償時間同時減小5%,然后使用減小后的第一補償時間和第二補償時間重新計算該易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間。
步驟311、保存易誤觸發(fā)詞組和對應(yīng)的第一起始時間和第一結(jié)束時間。
本發(fā)明實施例提供的防止語音命令誤識別的方法,通過先獲取與待播放歌曲匹配的歌詞文件,根據(jù)歌詞文件是、否存在已保存的易誤觸發(fā)詞組,分別進行直接讀取易誤觸發(fā)詞組對應(yīng)的第一起始時間和第一結(jié)束時間的操作,以及通過遍歷歌詞中所有漢字的發(fā)音屬性確定易誤觸發(fā)詞組、獲取易誤觸發(fā)詞組所屬的歌詞語句播放的第二起始時間和第二結(jié)束時間以及第一補償時間和第二補償使勁,并計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間的操作,然后播放待播放歌曲并適時關(guān)、開語音識別模塊,播放結(jié)束后統(tǒng)計易誤觸發(fā)詞組是否引起語音識別誤的情況并相應(yīng)地對第一起始時間和第一結(jié)束時間進行修正,最后保存易誤觸發(fā)詞組和對應(yīng)的第一起始時間和第一結(jié)束時間,克服了現(xiàn)有技術(shù)中為了減小語音誤觸發(fā)的概率,進而增加語音識別算法的復(fù)雜度,導(dǎo)致處理器計算負擔(dān)增加、設(shè)備功耗上升以及語音識別算法移植困難的技術(shù)缺陷,實現(xiàn)了無需提高語音識別算法的復(fù)雜度,也可以可靠地減少由于播放歌曲導(dǎo)致的語音誤識別,并在播放歌曲的同時最大限度地開啟語音識別模塊。
實施例四
圖4是本發(fā)明實施例四提供的一種防止語音命令誤識別的裝置的結(jié)構(gòu)圖。如圖4所示,所述裝置包括:歌詞文件獲取模塊101、易誤觸發(fā)詞組查找模塊102、播放時間計算模塊103和語音識別模塊控制模塊104。其中:
歌詞文件獲取模塊101,用于獲取與待播放歌曲匹配的歌詞文件;
易誤觸發(fā)詞組查找模塊102,用于查找歌詞文件中的易誤觸發(fā)詞組,其中,易誤觸發(fā)詞組與預(yù)設(shè)語音控制命令的語言相同或相近;
播放時間計算模塊103,用于根據(jù)歌詞文件,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間;
語音識別模塊控制模塊104,用于播放待播放歌曲,在到達第一起始時間時關(guān)閉語音識別模塊,在到達第一結(jié)束時間時啟動語音識別模塊。
本發(fā)明實施例提供的防止語音命令誤識別的裝置,通過先獲取與待播放歌曲匹配的歌詞文件,然后查找歌詞文件中的易誤觸發(fā)詞組,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間,最后播放待播放歌曲,在到達第一起始時間時關(guān)閉語音識別模塊,在到達第一結(jié)束時間時啟動語音識別模塊,克服了現(xiàn)有技術(shù)中為了減小語音誤觸發(fā)的概率,進而增加語音識別算法的復(fù)雜度,導(dǎo)致處理器計算負擔(dān)增加、設(shè)備功耗上升以及語音識別算法移植困難的技術(shù)缺陷,實現(xiàn)了無需提高語音識別算法的復(fù)雜度,也可以可靠地減少由于播放歌曲導(dǎo)致的語音誤識別。
在上述各實施例的基礎(chǔ)上,語音識別模塊控制模塊之后,還可以包括:
播放時間保存模塊,用于保存易誤觸發(fā)詞組和對應(yīng)的第一起始時間和第一結(jié)束時間;
播放時間計算模塊之前,還可以包括:
易誤觸發(fā)詞組確認模塊,用于確認歌詞文件不存在已保存的易誤觸發(fā)詞組;
語音識別模塊控制模塊之前,還可以包括:
播放時間讀取模塊,用于若存在已保存的易誤觸發(fā)詞組,讀取待播放歌曲中易誤觸發(fā)詞組對應(yīng)的第一起始時間和第一結(jié)束時間。
在上述各實施例的基礎(chǔ)上,歌詞文件可以為中文歌詞文件;
預(yù)設(shè)語音控制命令可以為漢語語音控制命令;
易誤觸發(fā)詞組查找模塊可以包括:
歌詞遍歷單元,用于遍歷中文歌詞文件中所有中文歌詞的發(fā)音屬性,其中,發(fā)音屬性至少包括音調(diào)、聲母和韻母;
相同詞組確認單元,用于如果所有中文歌詞中的一個漢字或一個漢字詞組中的各個漢字均與漢語語音控制命令中對應(yīng)位置的漢字的發(fā)音屬性相同,則確認該漢字或漢字詞組與漢語語音控制命令的語言相同;
相近詞組確認單元,用于如果所有中文歌詞中的一個漢字或一個漢字詞組中的各個漢字均與漢語語音控制命令中對應(yīng)位置的漢字的發(fā)音屬性中至少有一種不同且至少有兩種相同,則確認該漢字或所漢字詞組與漢語語音控制命令的語言相近;
易誤觸發(fā)詞組標記單元,用于將一個漢字或一個漢字詞組標記為易誤觸發(fā)詞組。
在上述各實施例的基礎(chǔ)上,播放時間計算模塊可以包括:
第二播放時間確定單元,用于根據(jù)歌詞文件,獲取易誤觸發(fā)詞組所屬的歌詞語句播放的第二起始時間和第二結(jié)束時間;
第一播放時間計算單元,用于根據(jù)第二起始時間、第二結(jié)束時間、歌詞語句包含歌詞單元的個數(shù)、易誤觸發(fā)詞組包含歌詞單元的個數(shù)和易誤觸發(fā)詞組在歌詞語句中的位置,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間。
在上述各實施例的基礎(chǔ)上,播放時間計算模塊可以包括:
第二播放時間確定單元,用于根據(jù)歌詞文件,獲取易誤觸發(fā)詞組所屬的歌詞語句播放的第二起始時間和第二結(jié)束時間;
補償時間獲取單元,用于獲取第一起始時間的第一補償時間和第一結(jié)束時間的第二補償時間;
第二播放時間計算單元,用于根據(jù)第二起始時間、第二結(jié)束時間、第一補償時間、第二補償時間、歌詞語句包含歌詞單元的個數(shù)、易誤觸發(fā)詞組包含歌詞單元的個數(shù)和易誤觸發(fā)詞組在歌詞語句中的位置,計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間。
在上述各實施例的基礎(chǔ)上,還可以包括:
誤識別統(tǒng)計模塊,用于待播放歌曲播放結(jié)束后,統(tǒng)計引起和未引起預(yù)設(shè)語音控制命令誤識別的易誤觸發(fā)詞組;
補償時間修正模塊,用于修正易誤觸發(fā)詞組對應(yīng)的第一補償時間和第二補償時間,重新計算易誤觸發(fā)詞組播放的第一起始時間和第一結(jié)束時間。
本發(fā)明實施例所提供的防止語音命令誤識別的裝置可用于執(zhí)行本發(fā)明任意實施例提供的防止語音命令誤識別的方法,具備相應(yīng)的功能模塊,實現(xiàn)相同的有益效果。
顯然,本領(lǐng)域技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以通過如上所述的服務(wù)器實施??蛇x地,本發(fā)明實施例可以用計算機裝置可執(zhí)行的程序來實現(xiàn),從而可以將它們存儲在存儲裝置中由處理器來執(zhí)行,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等;或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件的結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實施例,并不用于限制本發(fā)明,對于本領(lǐng)域技術(shù)人員而言,本發(fā)明可以有各種改動和變化。凡在本發(fā)明的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。