一種區(qū)分是否支持語音輸入功能的耳機(jī)的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及移動(dòng)設(shè)備音頻外設(shè)檢測技術(shù)領(lǐng)域,特別涉及一種區(qū)分是否支持語音輸 入功能的耳機(jī)的方法和系統(tǒng)。
【背景技術(shù)】
[0002] 近年來,隨著各種視聽設(shè)備的發(fā)展,也出現(xiàn)了各種相關(guān)的外設(shè)產(chǎn)品。從早期的在隨 身聽及CD機(jī)上的不支持語音輸入功能的耳機(jī),到現(xiàn)在智能機(jī)上使用的支持語音輸入功能 的耳機(jī)。為了在現(xiàn)在的設(shè)備上都支持這些耳機(jī),于是就需要系統(tǒng)能夠區(qū)分這兩種設(shè)備,從而 實(shí)現(xiàn)不同的音頻策略。
[0003] 目前,實(shí)現(xiàn)檢測的方法主要有兩種,一種是硬件音頻芯片自身支持該功能的檢測, 這就需要方案選型的時(shí)候就要考慮,但是,由于該功能比較細(xì)微,很容易被開發(fā)人員忽略, 導(dǎo)致后期無法實(shí)現(xiàn)區(qū)分。另一種主要是通過硬件設(shè)計(jì)中添加額外電路,或者操作系統(tǒng)底層 的寄存器操作音頻寄存器來得到偏置電壓的方式來區(qū)分有無語音輸入(Mic)功能,這種方 法比較復(fù)雜,而且靈活性較低,對(duì)開發(fā)者自身水平要求比較高,而且會(huì)延長開發(fā)周期。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于提供一種區(qū)分是否支持語音輸入功能的耳機(jī)的方法和系統(tǒng),以 解決現(xiàn)有技術(shù)區(qū)分是否支持語音輸入功能的耳機(jī)的方法復(fù)雜、靈活性低、對(duì)開發(fā)者自身水 平要求較高的問題。
[0005] 為解決上述技術(shù)問題,本發(fā)明提供一種區(qū)分是否支持語音輸入功能的耳機(jī)的方 法,包括:
[0006] 插入一無語音輸入功能的耳機(jī),設(shè)置錄音參數(shù)后啟動(dòng)錄音功能,生成第一錄音數(shù) 據(jù);
[0007] 模擬數(shù)字轉(zhuǎn)換器從所述第一錄音數(shù)據(jù)獲取320個(gè)點(diǎn)的第一錄音數(shù)據(jù)作為第一模 擬數(shù)字轉(zhuǎn)換采樣值;
[0008] 計(jì)算所述第一模擬數(shù)字轉(zhuǎn)換采樣值的平均差x;
[0009] 再次插入任一耳機(jī),設(shè)置與插入一無語音輸入功能的耳機(jī)相同的錄音參數(shù)后啟動(dòng) 錄音功能,生成第二錄音數(shù)據(jù);
[0010] 模擬數(shù)字轉(zhuǎn)換器從所述第二錄音數(shù)據(jù)獲取320個(gè)點(diǎn)的第二錄音數(shù)據(jù)作為第二模 擬數(shù)字轉(zhuǎn)換采樣值;
[0011] 計(jì)算所述第二模擬數(shù)字轉(zhuǎn)換采樣值的平均差y;
[0012] 若平均差y與平均差x的差值的絕對(duì)值大于預(yù)設(shè)閾值,則確認(rèn)所述再次插入的耳 機(jī)為有語音輸入功能的耳機(jī),反之則為無語音輸入功能的耳機(jī)。
[0013] 進(jìn)一步的,在所述的區(qū)分是否支持語音輸入功能的耳機(jī)的方法中,所述錄音參數(shù) 包括:采樣率為8000Hz、單通道和采樣精密度為16bit。
[0014] 進(jìn)一步的,在所述的區(qū)分是否支持語音輸入功能的耳機(jī)的方法中,在插入一無語 音輸入功能的耳機(jī)的步驟中,系統(tǒng)檢測到耳機(jī)的插入后,將音頻輸入設(shè)置為系統(tǒng)的語音輸 入,將音頻輸出設(shè)置為耳機(jī)輸出,同時(shí)向上層應(yīng)用程序上報(bào)耳機(jī)插入事件。
[0015] 進(jìn)一步的,在所述的區(qū)分是否支持語音輸入功能的耳機(jī)的方法中,確認(rèn)所述再次 插入的耳機(jī)的類型的步驟后,還包括:
[0016] 根據(jù)所述耳機(jī)的類型,重新設(shè)置音頻策略。
[0017] 進(jìn)一步的,在所述的區(qū)分是否支持語音輸入功能的耳機(jī)的方法中,所述音頻策略 為:
[0018] 當(dāng)所述耳機(jī)為無語音輸入功能的耳機(jī)時(shí),將音頻輸入設(shè)置為系統(tǒng)的語音輸入,將 音頻輸出設(shè)置為耳機(jī)輸出;
[0019] 當(dāng)所述耳機(jī)為有語音輸入功能的耳機(jī)時(shí),不做任何操作,直接退出。
[0020] 同時(shí),本發(fā)明還提供一種區(qū)分是否支持語音輸入功能的耳機(jī)的系統(tǒng),包括:
[0021] 第一生成模塊,用于插入一無語音輸入功能的耳機(jī),設(shè)置錄音參數(shù)后啟動(dòng)錄音功 能,生成第一錄音數(shù)據(jù);
[0022] 模擬數(shù)字轉(zhuǎn)換器,用于從所述第一錄音數(shù)據(jù)獲取320個(gè)點(diǎn)的第一錄音數(shù)據(jù)作為第 一模擬數(shù)字轉(zhuǎn)換采樣值;
[0023] 第一獲取模塊,用于計(jì)算所述第一模擬數(shù)字轉(zhuǎn)換采樣值的平均差x;
[0024] 第二生成模塊,用于再次插入任一耳機(jī),設(shè)置與插入一無語音輸入功能的耳機(jī)相 同的錄音參數(shù)后啟動(dòng)錄音功能,生成第二錄音數(shù)據(jù);
[0025] 模擬數(shù)字轉(zhuǎn)換器,還用于從所述第二錄音數(shù)據(jù)獲取320個(gè)點(diǎn)的第二錄音數(shù)據(jù)作為 第二模擬數(shù)字轉(zhuǎn)換采樣值;
[0026] 第二獲取模塊,用于計(jì)算所述第二模擬數(shù)字轉(zhuǎn)換采樣值的平均差y;
[0027] 判斷模塊,用于若平均差y與平均差x的差值的絕對(duì)值大于預(yù)設(shè)閾值,則確認(rèn)所述 再次插入的耳機(jī)為有語音輸入功能的耳機(jī),反之則為無語音輸入功能的耳機(jī)。
[0028] 進(jìn)一步的,在所述的區(qū)分是否支持語音輸入功能的耳機(jī)的系統(tǒng)中,其特征在于,所 述錄音參數(shù)包括:采樣率為8000Hz、單通道和采樣精密度為16bit。
[0029] 進(jìn)一步的,在所述的區(qū)分是否支持語音輸入功能的耳機(jī)的系統(tǒng)中,還包括第一設(shè) 置模塊,用于系統(tǒng)檢測到第一生成模塊的耳機(jī)的插入后,將音頻輸入設(shè)置為系統(tǒng)的語音輸 入,將音頻輸出設(shè)置為耳機(jī)輸出,同時(shí)向上層應(yīng)用程序上報(bào)耳機(jī)插入事件。
[0030] 進(jìn)一步的,在所述的區(qū)分是否支持語音輸入功能的耳機(jī)的系統(tǒng)中,還包括:第二設(shè) 置模塊,用于根據(jù)所述耳機(jī)的類型,重新設(shè)置音頻策略。
[0031] 進(jìn)一步的,在所述的區(qū)分是否支持語音輸入功能的耳機(jī)的系統(tǒng)中,在所述第二設(shè) 置模塊中,當(dāng)所述耳機(jī)為無語音輸入功能的耳機(jī)時(shí),將音頻輸入設(shè)置為系統(tǒng)的語音輸入,將 音頻輸出設(shè)置為耳機(jī)輸出;當(dāng)所述耳機(jī)為有語音輸入功能的耳機(jī)時(shí),不做任何操作,直接退 出。
[0032] 本發(fā)明提供的區(qū)分是否支持語音輸入功能的耳機(jī)的方法和系統(tǒng),具有以下有益效 果:本發(fā)明在系統(tǒng)的應(yīng)用層面上就可以判斷耳機(jī)的狀態(tài),而不需要對(duì)系統(tǒng)的硬件及底層的 驅(qū)動(dòng)有比較深入的理解,同時(shí)相對(duì)于其他方式,開發(fā)周期更短,難度更低。
【附圖說明】
[0033] 圖1是本發(fā)明實(shí)施例的區(qū)分是否支持語音輸入功能的耳機(jī)的方法的流程示意圖; [0034] 圖2是本發(fā)明實(shí)施例的區(qū)分是否支持語音輸入功能的耳機(jī)的系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0035] 以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明提出的區(qū)分是否支持語音輸入功能的耳機(jī) 的方法和系統(tǒng)作進(jìn)一步詳細(xì)說明。根據(jù)下面說明和權(quán)利要求書,本發(fā)明的優(yōu)點(diǎn)和特征將更 清楚。需說明的是,附圖均采用非常簡化的形式且均使用非精準(zhǔn)的比例,僅用以方便、明晰 地輔助說明本發(fā)明實(shí)施例的目的。
[0036] 請(qǐng)參考圖1,本發(fā)明提供一種區(qū)分是否支持語音輸入功能的耳機(jī)的方法,包括:
[0037] S11 :插入一無語音輸入功能的耳機(jī),設(shè)置錄音參數(shù)后啟動(dòng)錄音功能,生成第一錄 音數(shù)據(jù);