專利名稱:音源定位方法和系統的制作方法
技術領域:
本發明涉及音源定位,具體地說涉及應用在玩具等產品中的音源 定位方法和音源定位系統。
背景技術:
現在的玩具越來越機械化和智能化。比如,Sony公司開發的一款 商業機器人AIBO是模擬真實狗行為的全機械機器人玩具寵物。AIBO 配置有CMOS攝像頭和觸覺傳感器,用于接收外界環境的輸入信息,分 析這些信息,并通過輸出來對輸入做出反應。AIB0的耳朵是一個微麥, 它可以對聲音命令、周圍噪聲以及主人的聲音做出響應。
然而,這些玩具在空間定位方面都存在較大誤差。AIB0的微麥僅 可以筒單地識別出聲音的方向。隨著玩具的智能化程度進一步提高, 玩具廠商對音源定位技術提出了較高的要求。
發明內容
本發明的目的是克服包括玩具在內的產品中音源定位精度不足的 缺點。
本發明在第一方面提供音源定位方法,包括步驟接收來自不同 指向的多個麥克的聲音信號;對聲音信號低通濾波、放大和AD轉換; 對AD轉換后的聲音信號進行在若干方向上的音量判斷,所述若干方向 包括多個麥克所指向的多個主方向;并且基于音量判斷結果,確定音 源方向為所述若干方向之一。
本發明在笫二方面提供音源定位系統,包括多個麥克;濾波放 大電路,與多個麥克相連,將來自多個麥克的聲音信號濾波放大;AD 轉換器,將濾波放大后的聲音信號轉換為數字信號;數據處理單元, 對AD轉換后的聲音信號進行在若干方向上的音量判斷,所述若干方向
包括多個麥克所指向的多個主方向;并且確定音源方向為所述若干方 向之一。
優選的是,本發明的第一方面和第二方面中提到的所述若干方向
還包括位于多個主方向之間的數個副方向。
本發明以較低的成本實現了對音源進行較高精度且實時的方向定位。
下面將參照附圖對本發明的優選實施方案進行更詳細的說明,附困
中
圖l是根據本發明的優選實施方案的音源定位系統結構圖; 圖2是圖l音源定位系統的處理流程圖; 圖3是濾波放大電路的示意圖4是根據本發明的一個優選實施例,采用圖3放大電路構成的
音源定位系統的總體電路圖; 圖5是AD轉換的處理流程; 圍6是音量判斷原理圖; 圖7示意了音量判斷中的多級搜索過程; 圖8是音量判斷處理的具體流程圖; 圖9是音源方向判斷的處理流程圖;以及 圖IO是音量分布結果示意圖。
具體實施例方式
圖l是根據本發明的音源定位系統結構圖。音源定位系統結構可 以分為三部分聲音數據采集部分、數據處理部分、定位結果指示部 分。
如圖1所示,聲音數據采集部分包括三個指向性麥克以及與之相 連的濾波放大電路。三個指向性麥克成120度夾角放置,用于接收聲 音信號。麥克所接收的聲音信號被送往濾波放大電路,后者將聲音信 號濾波放大。需要指出,麥克的數量和指向可以根據需要確定,可以 呈空間或平面均勻分布。
數據處理部分由單片機構成。該單片機包括AD接口和存儲器(未 圖示)。單片機通過AD接口接收來自濾波放大電路的信號,并且對其 進行AD轉換.量化后的數據保存到存儲器中等待處理。單片機采用音 源定位算法,基于所采集到的聲音數據進行音童判斷,并且由此判斷
音源的方向。需要指出,AD轉換模塊也可以獨立于單片機被提供。
定位結果指示部分包括6個音源方向D1-D6,它們可以由例如發光 二極管構成。單片機在判斷出當前音源方向后,輸出驅動信號,點亮 對應音源方向的 一個發光二極管。
在圖1中,Dl、 D3和D5對應三個麥克的主方向,這三個主方向每 兩個之間有一個副方向(D2、 D4和D6)。所以,音源定位系統最終能 夠指示6個方向,即系統的定位精度為60度。
在一個例子中,單片機釆用SPCE061A,這是凌陽科技推出的n, nSP 系列產品中的一款16位結構的微控制器。SPCE061A的內存為2K 字,同時內嵌了 32K字的閃存(FLASH)。
下文將結合單片機SPCE061A進一步說明音源定位系統的處理過程 和具體結構。
圖2是音源定位系統的處理流程圖。從圖2可以看出,單片機上 電或復位后系統首先在步驟S200進行初始化,然后經步驟S202的循 環邏輯判斷之后進入步驟S204。在步驟S204擦寫閃存。在步驟S206, 將AD轉換結果暫存入閃存中。當需要處理數據時,系統在步驟S208 分段栽入AD轉換結果到內存。在步驟S210,基于AD轉換結果判斷音 源方向。當判斷出音源方向后,在步驟S212顯示音源位置。然后,程 序返回步驟S202,進行下一循環的操作。
簡言之,在系統初始化后,系統便處于接收數據、處理數據和指 示音源方向三個狀態的循環之中。
下面將詳細說明音源定位系統中的濾波放大電路、AD轉換流程和 數據處理部分。
1.濾波放大電路
圖3是濾波放大電路的示意圖,該濾波放大電路利用例如運算放 大器LM358構成,利用二級差分放大的形式為單片機提供輸入信號。
如圖3所示,將電源穩壓后供給麥克MIC作為驅動電壓,可以減 小電源對麥克的影響。麥克一般分為兩種動圍式和電容式。在本例 中,采用了駐體極電容傳聲器作為采集聲音的麥克。麥克優選具有單 指向性。
在圖3中,第一個運算放大器LM358將麥克輸出信號與驅動電壓 的差放大例如10倍作為第二級的輸入。在第二級輸入處,利用電容構
成的低通濾波器將第二級的輸入電壓取樣作為第二級的基準電壓。第
二個運算放大器LM358將第二級的輸入信號與第二級的基準電壓之差 放大例如13倍,作為最終麥克通道的采樣結果。
該放大電路結構簡單,電源的影響低,數據波形的質量高。 圖4是根據本發明的一個優選實施例,采用圖3放大電路構成的 音源定位系統的總體電路圖。如圖4所示,來自不同麥克的3路聲音 信號分別經各自的兩級放大電路放大后,經輸入端IOA0、 IOAl、 I0A2 輸入單片機SPCE061A中。單片機對輸入數據進行AD轉換,音量判斷 和音源方向判斷,最后將音源方向數據經輸出端口 10B10-15輸出,控 制指示燈或電機。
2. AD轉換流程
在單片機SPCE061A中,AD轉換器的基準電壓為3V,分辨率為2—'。, 采樣精度約為3mV。由于SPCE061A內存只有2K字,受此限制,AD轉 換模塊每次只能積累600個采樣點,大約為0. 0625s的聲音數據。而 定位程序需要較長的聲音才能準確確定音源位置。為提高定位的準確 度,將0.75s的數據暫存到閃存中,這相當于大約單片機60X的閃存 空間。當積累夠0. 75s的聲音數據后才開始處理這些數據,對這段數 據的音源進行判斷。
此部分會連續轉換大約0.75s的聲音數據,保存到閃存中。后續 處理數據時再將數據每次以600個點的方式讀入內存中使用。
圖5是AD轉換的處理流程。如圖5所示,程序在步驟S500開始 后,首先在步驟S502啟動第1路AD轉換。
程序在步驟S504經過適當的延時等待,為使定位達到比較好的實 時性效果,設置單片機SPCE061A工作在最高的時鐘頻率49. 152MHz 下,此時的AD轉換速率為96KHz,通過軟件延時的方式,可以將采樣 頻率控制在大約24kHz。三路麥克采用串行處理方式,故此每路麥克 的采樣頻率大約為8KHz,
然后,在步驟S506保存AD轉換后的數據到閃存中。
在步驟S508判斷是否K3,即其它路AD轉換沒有完成?如果沒有 完成,則程序返回步驟S502,按照類似于笫1路AD轉換的順序,依 次進行笫2路和第3路AD轉換。
如果在步驟S508判斷其它路AD轉換完成,則程序進入步驟S510,
程序結束。
在一個優選例子中,AD轉換的聲音數據還要進行一次濾除直流分 量的處理。這一步處理后能得到更平滑的聲音波形,同時也將聲音波 形的中心穗定在縱坐標的零值。
單片機在AD轉換后進行的數據處理包括音量判斷和方向判斷。接 下來,將分別對其進行詳細說明。
3.音量判斷
圖6是根據本發明的音量判斷原理圖。
音量判斷是指分別判斷3路麥克輸入的聲音數據的音量大小。一 種具體的辦法是計算出每一路的有效點(lag)數。為減少噪聲的影響,
設定了音量判斷的閾值。在麥克靈敏度和閾值設定恰當的情況下,準 確計算出每一路麥克的有效點數,能夠在較短時間(比如l秒)內處
理完三路麥克的聲音數據。需要說明,音重判斷也可以采取其它方式 進行,比如能量計算。
具體地說,采用有效點數進行音量判斷的算法是計算超過某一閾 值的采樣點個數。在一個優選例子中,連續的兩個幅值中,其中前一 個小于閾值,后一個大于閾值;或者前一個大于負的閾值,后一個小 于負的閾值,則有效點數增加l。判斷有效點用的閾值在程序中需要 反復測試確定一個經驗值。閾值可以通過在計算機上觀察三路麥克采 集到的聲音波形并反復測試而設定。
如圖6所示,假設直線A標示了判斷音量大小的閾值,曲線B是 一路麥克采集到的聲音波形。曲線B上的每一個點表示一個聲音采樣 點幅值。那么,圃閨所標記的幅值點,其前一點低于直線A,即小于 閾值。這樣,有效點數增加一。
通過這種判斷方法,便得到表示一路麥克一段聲音數據的有效點 數多少的數值,由此表明該路麥克該段聲音數據的大小。
圖7示意了音量判斷中的多級搜索過程。由于外部聲音是動態變 化的,有時強有時弱.為了正確檢測出聲音大小,音量判斷用的閾值 應該是不同的。同時,外部噪聲的存在也會影響閾值的設定。為此, 本發明提供了一個動態的音量搜索過程,搜索的級數例如可以多達三 級。
如圖7所示,波形部分表示的是聲音波形。初始的音量閾值設定 為例如150和-150.顯然在進行第一級搜索時沒有找到聲音。然后, 閾值自動降低一個搜索分辨精度,例如50,變為IOO和-IOO進行笫二 級搜索。在這一級同樣沒有找到聲音,閾值又自動調整了一個搜索分 辨精度50變為50和-50,重新對這段聲音進行音量判斷。
需要說明,上面的三次音量搜索過程中在哪一級發現有聲音就會 停止繼續向下搜索。搜索次數及每級搜索的分辨精度可以根據實際需 要進行調整,以達到最好的效果。
圖8是音量判斷處理的具體流程,
程序在步驟S800開始后,在步驟S802按照預先設定的波峰閾值 和波谷閾值(比如150、 -150 )計算第1個麥克的有效點(lag )數。 在步驟S804計算第2個麥克的有效點數。在步驟S806計算第3個麥 克的有效點數。波峰閾值和波谷閾值是分別針對聲音波形的波峰和波 谷而設定的兩個不同的值.
然后,在步驟S808確定能否定位主、副方向?方法是看三路麥克 是否有哪一或幾路的有效點數夠多,即可確定音源可定位主、副方向。
為了避免某一個突發聲音對整個判斷的影響,每一路的有效點數 大于某個閾值(通過測試調整)才認為有效。如該閾值設為90,則某 一路的有效點數為80,就會被認為此時該路麥克對應的方向是靜音, 沒有音源。
如果在步驟S808無法定位主、副方向,那么程序進入步驟S810, 搜索次數(search—time )加一,并且確定搜索次數是否未到三次?如 果是,則可以繼續搜索,程序進入步驟S812。
在步驟S812,按照相同的幅度(例如45)調整波峰閾值(Th_a) 和波谷閾值(Th-b),即波峰閾值降低一定幅度,波谷閾值增加一定幅 度。然后,程序返回步驟S802,重新計算第l-3路麥克的有效點數,
如果在步驟S808確定可以定位主、副方向,那么程序進入步驟 S814。
在步驟S814,程序確定是否為副方向?如果某一路麥克的有效點 數與其它路麥克的有效點數非常接近,則可以認定音源的位置不在這 兩路麥克上,而是它們之間的副方向,從而進入步驟S816,該副方向 計數。如果某一路麥克的有效點數超出其它兩路的有效點數較多,超
過某一閾值(如15 ),則認定音源在有效點數較多的那一路(正方向) 上,即不是副方向,從而進入步驟S818,所述主方向計數。
程序在步驟S816和S818計數完畢,以及在步驟S810搜索次數達 到三次后,進入步碟S820,結束音量判斷。
舉例來說,第一路麥克的一段聲音數據通過這種判斷方法后得到 一個有效點數IOO,表示這路麥克在這一時段的音量為100。然后再使
用同樣的算法判斷同一時段內另外兩路麥克音量。假設判斷后為第二 路音量85和第三路音量95。此時基本就能確定音源靠近第一路麥克 比較近,可能離笫三路也比較近,離第二路比較遠。
4.音源方向判斷
圖9是音源方向判斷的處理流程圖。系統在積累例如0. 75s的聲 音數據并且對其進行音量判斷之后,會對音源的方向做出一次判斷。
這部分的算法是以經過例如10次(0. 75s)音量判斷,3個主方向中 積累次數最多的方向來定位音源的主方向,以3個副方向上積累最多 的方向為副方向,按照副方向是否在主方向兩側,及主方向和副方向 的差別確定音源的具體方向。
如圖9所示,程序在步驟S900開始后,在步驟S902尋找音源主 方向位置,即確定最大的主方向計數所在的主方向為主方向位置,然 后進入步驟S904尋找音源副方向位置,即最大副方向計數所在的副方 向為副方向位置。接下來,程序進入步驟S906,判斷主方向和副方向 是否都不存在?如果都不存在,表明沒有音源存在,則程序轉入步驟 S922,設置靜音標志,然后進入步驟S924,程序結束。
如果在步驟S906判斷主方向位置和副方向位置存在,則程序進入 步驟S908。在步驟S908,判斷副方向位置在主方向位置兩側嗎?如果 否,表明存在音源但不能確定音源位置,則程序轉入步驟S920。
如果判定副方向位置在主方向位置兩側,則進入步驟S910,判斷 主方向位置與副方向位置存在音量差?如果主方向位置的音量大于副 方向位置,即主方向位置的計數次數大于副方向位置的計數次數,則 程序進入步驟S912,確定音源在主方向位置。如果主方向位置的音量 小于副方向位置,則程序進入步驟S914,確定音源在副方向位置。
在步驟S912和S914之后,程序均進入步驟S916。
在步驟S916,判斷音源積累次數是否足夠?所謂音源積累次數,
是指在一段(例如0.75s)聲音中音源被定位在一個定位方向上的次
數.如果音源積累次數大于預定的閾值,則進入步驟S918,保存音源
方向,然后進入步驟S924。
如果在步驟S916判斷音源積累次數不夠,則進入步驟S920。 在步驟920,程序認定音源存在但不能確定音源位置,然后進入步
驟S924而結束。
圖IO是音量分布結果示意圖。假設對三路麥克的音量判斷完后得 到的音量大小在6個方向上的分布如圖10。那么,音源將被定位在6 次的方向上。假設6次的方向為主方向Dl。參看圖9,執行步驟S902 尋找主方向時的結果就是D1 6次,執行步驟S904尋找副方向的結果 就是D2方向,3次。此時的主方向和副方向都存在。由于D2在D1的 右側,接下來進入步驟S910,判斷D1和D2大小。D1的數值大于D2, 則判斷出音源在主方向Dl上。再判斷一下Dl是否足夠大,如Dl大于 3是否成立。否則,仍然認定為不能最終確定音源方向。
單片機根據音源方向判斷的結果,輸出控制信號給音源定位結果 顯示部分,從而在靜音時無輸出,有聲音時輸出信號,點亮所確定音 源方向相應的二極管。或者,單片機也可以進行其它方式的控制,比 如發出轉向的指令。
雖然上文結合單片機SPCE061A進行了描述,但是本發明也同樣適 用于其它類型的單片機和處理器。
另外,本發明還可以用于確定音源在多個主方向上的定位,以及 音源在多個主方向和位于該多個主方向之間的數個副方向上的定位。
本發明以較低的成本實現了對音源進行較高精度且實時的方向定 位,可以適用于玩具等機械和電子產品中。
顯而易見,在此描述的本發明可以有許多變化。比如,前文提到在 單片機中采用的內存(memory)和閃存結合的結構可以被單個的大內存 取代。這種變化不能認為偏離本發明的精神和范圍。因此,所有對本領 域技術人員顯而易見的改變,都包括在本權利要求書的涵蓋范圍之內。
權利要求
1. 音源定位方法,包括步驟接收來自不同指向的多個麥克的聲音信號;對聲音信號低通濾波、放大和AD轉換;基于AD轉換后的聲音信號,進行在若干方向上的音量判斷,所述若干方向包括多個麥克所指向的多個主方向;并且基于音量判斷結果,確定音源方向為所述若干方向之一。
2. 如權利要求1所述的音源定位方法,其特征在于所述對聲音 信號低通濾波、放大和AD轉換的步驟包括對聲音信號進行濾除直流分 量的處理。
3. 如權利要求1所述的音源定位方法,其特征在于所述方法包 括將接收到的聲音信號存儲到閃存中,并且在由單片機執行所述音量 判斷步驟之前將閃存中的聲音信號分段栽入內存中。
4. 如權利要求1所述的音源定位方法,其特征在于所述音量判 斷步驟采用聲音信號的有效點數來完成音量判斷。
5. 如權利要求4所述的音源定位方法,其特征在于所述音量判 斷的步驟包括若連續的兩個幅值中,其中前一個小于第一閾值,后一 個大于第一閾值;或者前一個大于負的笫一閾值,后一個小于負的第 一閾值,則有效點數增加l。
6. 如權利要求5所述的音源定位方法,其特征在于所述音量判 斷的步驟包括按搜索分辨精度調整所述第 一 閾值的步猓。
7. 如權利要求4所述的音源定位方法,其特征在于所述若千方 向包括位于多個主方向之間的數個副方向。
8. 如權利要求7所述的音源定位方法,其特征在于所述音量判 斷的步驟包括如果所述多個主方向中的一個主方向有效點數比所述多 個主方向的其它主方向大且其差大于第二閾值,對所述一個主方向計 數,如果所述多個主方向中有兩個主方向的有效點數較大且其差不大 于笫二閾值,則對該兩個主方向之間的副方向計數,所述計數作為音 量判斷結果。
9. 如權利要求8所述的音源定位方法,其特征在于所述確定音源方向的步驟包括基于所述若干方向上的計數,確定計數最大的主方 向和副方向分別為主方向位置和副方向位置,并且當副方向位置在主方向位置兩側時,確定音源方向為主方向位置和副方向位置之一。
10. 音源定位系統,包括多個麥克;濾波放大電路,與多個麥克 相連,將來自多個麥克的聲音信號濾波放大;AD轉換器,將濾波放大 后的聲音信號轉換為數字信號;數據處理單元,基于AD轉換后的聲音 信號進行在若干方向上的音量判斷,所述若干方向包括多個麥克所指 向的多個主方向;并且確定音源方向為所述若干方向之一。
11. 如權利要求10所述的音源定位系統,其特征在于所述濾波放大
12. 如權利要求10所述的音源定位系統,其特征在于所述數據處理 單元由單片機實現。
13. 如權利要求10所述的音源定位系統,其特征在于所述單片機包 括閃存和內存,閃存存儲AD轉換后的數字信號,并且在由單片機執行 音量判斷之前將閃存中的聲音信號分段栽入內存中。
14. 如權利要求10所述的音源定位系統,其特征在于所述數據處 理單元包括計算每個麥克聲音信號的有效點數,并且基于所述有效點 數,進行所述若干方向上的計數的裝置,所述計數作為相應方向的音 量判斷結果。
15. 如權利要求14所述的音源定位系統,其特征在于所述若干方向 包括位于多個主方向之間的數個副方向。
16. 如權利要求15所述的音源定位系統,其特征在于所述進行若干 方向上計數的裝置包括在所述多個主方向中的一個主方向有效點數比 所述多個主方向的其它主方向大且其差大于第二閾值的情況下,對所 述一個主方向計數的裝置,和在所述多個主方向中有兩個主方向的有 效點數較大且其差不大于第二閾值的情況下,對該兩個主方向之間的 副方向計數的裝置,所述計數作為音量判斷結果。
17. 如權利要求15所述的音源定位系統,其特征在于所述數據處 理單元包括基于所述若干方向上的計數,確定計數最大的主方向和副 方向分別為主方向位置和副方向位置,并且當副方向位置在主方向位 置兩側時,確定音源方向為主方向位置和副方向位置之一的裝置。
全文摘要
本發明提供音源定位方法和系統。所述方法包括步驟接收來自不同指向的多個麥克的聲音信號;對聲音信號低通濾波、放大和AD轉換;對AD轉換后的聲音信號進行在若干方向上的音量判斷,所述若干方向包括多個麥克所指向的多個主方向;并且基于音量判斷結果,確定音源方向為所述若干方向之一。在一個優選方案中,所述若干方向還包括位于多個主方向之間的數個副方向。本發明以較低的成本實現了對音源進行較高精度且實時的方向定位。
文檔編號G01H17/00GK101206139SQ20061016577
公開日2008年6月25日 申請日期2006年12月18日 優先權日2006年12月18日
發明者周金星, 昫 邵 申請人:大連三曦智能科技有限公司