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