(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
以下、実施の形態について図面を参照して説明する。
【0009】
先ず、
図1を参照して、本実施形態の電子機器の構成を説明する。この電子機器は、携帯型の端末、たとえば、タブレット型パーソナルコンピュータ、ラップトップ型またはノートブック型のパーソナルコンピュータ、PDA、として実現し得る。以下では、この電子機器がタブレット型パーソナルコンピュータ10(以下、コンピュータ10と称す。)として実現されている場合を想定する。
【0010】
図1は、コンピュータ10の外観を示す図である。このコンピュータ10は、コンピュータ本体11と、タッチスクリーンディスプレイ17とから構成される。コンピュータ本体11は薄い箱形の筐体を有している。タッチスクリーンディスプレイ17はコンピュータ本体11の表面上に配置される。タッチスクリーンディスプレイ17は、フラットパネルディスプレイ(たとえば、液晶表示装置(LCD))と、タッチパネルとを備える。タッチパネルは、LCDの画面を覆うように設けられる。タッチパネルは、ユーザの指またはペンによってタッチされたタッチスクリーンディスプレイ17上の位置を検出するように構成されている。
【0011】
図2は、コンピュータ10のシステム構成を示すブロック図である。
コンピュータ10は、
図2に示されるように、タッチスクリーンディスプレイ17、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ104、BIOS−ROM105、不揮発性メモリ106、エンベデッドコントローラ(EC)108、マイク109A,109B、および加速度センサ110等を備える。
【0012】
CPU101は、コンピュータ10内の各種モジュールの動作を制御するプロセッサである。CPU101は、ストレージデバイスである不揮発性メモリ106から揮発性メモリである主メモリ103にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム(OS)200、および各種アプリケーションプログラムが含まれている。各種アプリケーションプログラムには、録音アプリケーション300が含まれている。
【0013】
また、CPU101は、BIOS−ROM105に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
【0014】
システムコントローラ102は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ102は、PCI EXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ104との通信を実行する機能も有している。
【0015】
グラフィクスコントローラ104は、本コンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示コントローラである。このグラフィクスコントローラ104によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて画面イメージを表示する。このLCD17A上にはタッチパネル17Bが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル17Bによって検出される。
【0016】
EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じて本コンピュータ10を電源オンまたは電源オフする機能を有している。
【0017】
加速度センサ110は、電子機器10にかかるx,y,z軸方向の加速度を検出する。
x,y,z軸方向の加速度を検出することで、電子機器10の向きを検出することが可能である。
【0018】
図3は、録音アプリケーション300の機能ブロック図である。
周波数分解部301、音声区間検出部302、発話方向推定部303、話者クラスタリング部304、ユーザインタフェース表示処理部305、録音処理部306、および制御部307等を備えている。
【0019】
録音処理部306は、マイク109A,マイク109Bから入力された音声データに対して、圧縮処理等を施して音声データをストレージデバイス106に格納することによって、録音処理を行う。
【0020】
制御部307は、録音アプリケーション300の各部の動作を制御することが可能である。
【0021】
[周波数成分毎の位相差に基づく音源推定の基本概念]
マイク109Aとマイク109Bは、空気などの媒質中に所定の距離をあけて配置された2つのマイクロホンであり、異なる2地点での媒質振動(音波)をそれぞれ電気信号(音響信号)に変換するための手段である。以後、マイク109Aとマイク109Bとをひとまとめに扱う場合、これをマイクロホン対と呼ぶことにする。
【0022】
音響信号入力部は、マイク109Aとマイク109Bによる2つの音響信号を所定のサンプリング周期Frで定期的にA/D変換することで、マイク109Aとマイク109Bによる2つの音響信号403、404のデジタル化された振幅データを時系列的に生成する。
【0023】
マイクロホン間距離に比べて十分遠い場所に音源が位置していることを仮定すると、
図4(A)に示すように、音源400から発してマイクロホン対に到達する音波の波面401はほぼ平面となる。マイク109Aとマイク109Bとを用いることにより異なる2地点でこの平面波を観測すると、マイク109Aとマイク109Bとを結ぶ線分402(これをベースラインと呼ぶ)に対する音源400の方向Rに応じて、マイクロホン対で変換される音響信号に所定の到達時間差ΔTが観測されるはずである。なお、音源が十分遠いとき、この到達時間差ΔTが0になるのは、音源400がベースライン402に垂直な平面上に存在するときであり、この方向をマイクロホン対の正面方向と定義する。
【0024】
[周波数分解部]
さて、振幅データを周波数成分に分解する一般的な手法として高速フーリエ変換(FFT)がある。代表的なアルゴリズムとしては、Cooley−TurkeyDFTアルゴリズムなどが知られている。
【0025】
周波数分解部301は、
図5に示すように、上記音響信号入力部による振幅データ410について、連続するN個の振幅データをフレーム(T番目のフレーム411)として抜き出して高速フーリエ変換を行うとともに、この抜き出し位置をフレームシフト量413ずつずらしながら繰り返す(T+1番目のフレーム412)。
【0026】
フレームを構成する振幅データは、
図6(A)に示すように窓掛け601を施された後、高速フーリエ変換602がなされる。この結果、入力されたフレームの短時間フーリエ変換データが実部バッファR[N]と虚部バッファI[N](603)に生成される。なお、窓掛け関数(Hamming窓掛けあるいはHanning窓掛け)605の一例を
図6(B)に示す。
【0027】
ここで生成される短時間フーリエ変換データは、当該フレームの振幅データをN/2個の周波数成分に分解したデータであり、k番目の周波数成分fkについてバッファ603内の実部R[k]と虚部I[k]の数値が、
図6(C)に示すように複素座標系604上の点Pkを表す。このPkの原点Oからの距離の2乗が当該周波数成分のパワーPo(fk)であり、Pkの実部軸からの符号付き回転角度θ{θ:−π>θ≧π[ラジアン]}が当該周波数成分の位相Ph(fk)である。
【0028】
サンプリング周波数がFr[Hz]、フレーム長がN[サンプル]のとき、kは0から(N/2)−1までの整数値をとり、k=0が0[Hz](直流)、k=(N/2)−1がFr/2[Hz](最も高い周波数成分)を表し、その間を周波数分解能Δf=(Fr/2)÷((N/2)−1)[Hz]で等分したものが各kにおける周波数となり、fk=k・Δfで表される。
【0029】
なお、前述したように、周波数分解部301はこの処理を所定の間隔(フレームシフト量Fs)を空けて連続的に行うことで、入力振幅データの周波数毎のパワー値と位相値とからなる周波数分解データセットを時系列的に生成する。
【0030】
[音声区間検出部]
音声区間検出部302は、周波数分解部301による結果に基づいて、音声区間を検出する。
【0031】
[発話方向推定部]
発話方向推定部303は、音声区間検出部302の検出結果に基づいて、音声区間の発話方向を検出する。
図7は、発話方向推定部303の機能ブロック図である。
発話方向推定部303は、2次元データ化部701と、図形検出部702と、音源情報生成部703と、出力部704とを具備する。
【0032】
(2次元データ化部と図形検出部)
図8に示すように、2次元データ化部701は位相差算出部801と座標値決定部802とを具備する。図形検出部702は投票部811と直線検出部812とを具備する。
【0033】
[位相差算出部]
位相差算出部801は、周波数分解部301により得られた同時期の2つの周波数分解データセットaとbとを比較して、同じ周波数成分毎に両者の位相値の差を計算して得たab間位相差データを生成する。例えば
図9に示すように、ある周波数成分fkの位相差ΔPh(fk)は、マイク109Aにおける位相値Ph1(fk)とマイク109Bにおける位相値Ph2(fk)との差を計算し、その値が{ΔPh(fk):−π<ΔPh(fk)≦π}に収まるように、2πの剰余系として算定する。
【0034】
[座標値決定部]
座標値決定部802は、位相差算出部801により得られた位相差データを元に、各周波数成分に両者の位相値の差を計算して得た位相差データを所定の2次元のXY座標系上の点として扱うための座標値を決定する手段である。ある周波数成分fkの位相差ΔPh(fk)に対応するX座標値x(fk)とY座標値y(fk)は、
図10に示す式によって決定される。X座標値は位相差ΔPh(fk)、Y座標値は周波数成分番号kである。
【0035】
[投票部]
投票部811は、座標値決定部802によって(x,y)座標を与えられた各周波数成分に対して、直線ハフ変換を適用し、その軌跡をハフ投票空間に所定の方法で投票する手段である。
【0036】
[直線検出部]
直線検出部812は、投票部811によって生成されたハフ投票空間上の得票分布を解析して有力な直線を検出する手段である。
【0037】
[音源情報生成部]
図11に示すように、音源情報生成部703は、方向推定部1111と、音源成分推定部1112と、音源音再合成部1113と、時系列追跡部1114と、継続時間評価部1115と、同相化部1116と、適応アレイ処理部1117と、音声認識部1118とを具備する。
【0038】
[方向推定部]
方向推定部1111は、以上で述べた直線検出部812による直線検出結果、すなわち直線群毎のθ値を受けて、各直線群に対応した音源の存在範囲を計算する。このとき、検出された直線群の数が音源の数(全候補)となる。マイクロホン対のベースラインに対して音源までの距離が十分遠い場合、音源の存在範囲はマイクロホン対のベースラインに対してある角度を持った円錐面となる。これを
図12を参照して説明する。
【0039】
マイク109Aとマイク109Bの到達時間差ΔTは±ΔTmaxの範囲で変化し得る。
図12(A)のように、正面から入射する場合、ΔTは0となり、音源の方位角φは正面を基準にした場合0°となる。また、
図12(B)のように音声が右真横、すなわちマイク109B方向から入射する場合、ΔTは+ΔTmaxに等しく、音源の方位角φは正面を基準にして右回りを正として+90°となる。同様に、
図12(C)のように音声が左真横、すなわちマイク109A方向から入射する場合、ΔTは−ΔTmaxに等しく、方位角φは−90°となる。このように、ΔTを音が右から入射するとき正、左から入射するとき負となるように定義する。
【0040】
以上を踏まえて
図12(D)のような一般的な条件を考える。マイク109Aの位置をA、マイク109Bの位置をBとし、音声が線分PA方向から入射すると仮定すると、△PABは頂点Pが直角となる直角三角形となる。このとき、マイク間中心O、線分OCをマイクロホン対の正面方向として、OC方向を方位角0°とした左回りを正にとる角度を方位角φと定義する。△QOBは△PABの相似形となるので、方位角φの絶対値は∠OBQ、すなわち∠ABPに等しく、符号はΔTの符号に一致する。また、∠ABPはPAとABの比のsin
−1として計算可能である。このとき、線分PAの長さをこれに相当するΔTで表すと、線分ABの長さはΔTmaxに相当する。したがって、符号も含めて、方位角はφ=sin
−1(ΔT/ΔTmax)として計算することができる。そして、音源の存在範囲は点Oを頂点、ベースラインABを軸として、(90−φ)°開いた円錐面1200として推定される。音源はこの円錐面1200上のどこかにある。
【0041】
図13に示すように、ΔTmaxはマイク間距離L[m]を音速Vs[m/sec]で割った値である。このとき、音速Vsは気温t[℃]の関数として近似できることが知られている。今、直線検出部812によって直線1300がハフの傾きθで検出されているとする。この直線1300は右に傾いているのでθは負値である。y=k(周波数fk)のとき、直線1300で示される位相差ΔPhはkとθの関数としてk・tan(−θ)で求めることができる。このときΔT[sec]は、位相差ΔPh(θ,k)の2πに対する割合を、周波数fkの1周期(1/fk)[sec]に乗じた時間となる。θが符号付きの量なので、ΔTも符号付きの量となる。すなわち、
図12(D)で音が右から入射する(位相差ΔPhが正値となる)とき、θは負値となる。また、
図12(D)で音が左から入射する(位相差ΔPhが負値となる)とき、θは正値となる。そのために、θの符号を反転させている。なお、実際の計算においては、k=1(直流成分k=0のすぐ上の周波数)で計算を行えば良い。
【0042】
[音源成分推定部]
音源成分推定部1112は、座標値決定部802により与えられた周波数成分毎の(x,y)座標値と、直線検出部812により検出された直線との距離を評価することで、直線近傍に位置する点(すなわち周波数成分)を当該直線(すなわち音源)の周波数成分として検出し、この検出結果に基づいて音源毎の周波数成分を推定する。
【0043】
[音源音再合成部]
音源音再合成部1113は、各音源音を構成する同一取得時刻の周波数成分を逆FFT処理することによって、当該時刻を開始時刻とするフレーム区間の当該音源音(振幅データ)を再合成する。
図5に図示したように、1つのフレームは次のフレームとフレームシフト量だけの時間差をおいて重複している。このように複数のフレームで重複している区間では、重複する全てのフレームの振幅データを平均して最終的な振幅データと成すことができる。このような処理によって、音源音をその振幅データとして分離抽出することが可能になる。
【0044】
[時系列追跡部]
投票部811によるハフ投票毎に直線検出部812により直線群が求められる。ハフ投票は連続するm回(m≧1)のFFT結果についてまとめて行われる。この結果、直線群はmフレーム分の時間を周期(これを「図形検出周期」と呼ぶことにする)として時系列的に求められることになる。また、直線群のθは方向推定部1111により計算される音源方向φと1対1に対応しているので、音源が静止していても移動していても、安定な音源に対応しているθ(あるいはφ)の時間軸上の軌跡は連続しているはずである。一方、直線検出部812により検出された直線群の中には、閾値の設定具合によって背景雑音に対応する直線群(これを「雑音直線群」と呼ぶことにする)が含まれていることがある。しかしながら、このような雑音直線群のθ(あるいはφ)の時間軸上の軌跡は連続していないか、連続していても短いことが期待できる。
【0045】
時系列追跡部1114は、このように図形検出周期毎に求められるφを時間軸上で連続なグループに分けることで、φの時間軸上の軌跡を求める手段である。
【0046】
[継続時間評価部]
継続時間評価部1115は、時系列追跡部1114により出力された追跡の満了した軌跡データの開始時刻と終了時刻から当該軌跡の継続時間を計算し、この継続時間が所定閾値を越えるものを音源音に基づく軌跡データと認定し、それ以外を雑音に基づく軌跡データと認定する。音源音に基づく軌跡データを音源ストリーム情報と呼ぶことにする。音源ストリーム情報には、当該音源音の開始時刻Ts、終了時刻Te、当該音源方向を表すθとρとφの時系列的な軌跡データが含まれる。なお、図形検出部702による直線群の数が音源の数を与えるが、そこには雑音源も含まれている。継続時間評価部1115による音源ストリーム情報の数は、雑音に基づくものを除いた信頼できる音源の数を与えてくれる。
【0047】
[同相化部]
同相化部1116は、時系列追跡部1114による音源ストリーム情報を参照することで、当該ストリームの音源方向φの時間推移を得て、φの最大値φmaxと最小値φminから中間値φmid=(φmax+φmin)/2を計算して幅φw=φmax−φmidを求める。そして、当該音源ストリーム情報の元となった2つの周波数分解データセットaとbの時系列データを、当該ストリームの開始時刻Tsより所定時間遡った時刻から終了時刻Teより所定時間経過した時刻まで抽出して、中間値φmidで逆算される到達時間差をキャンセルするように補正することで同相化する。
【0048】
あるいは、方向推定部1111による各時刻の音源方向φをφmidとして、2つの周波数分解データセットaとbの時系列データを常時同相化することもできる。音源ストリーム情報を参照するか、各時刻のφを参照するかは動作モードで決定され、この動作モードはパラメータとして設定・変更可能である。
【0049】
[適応アレイ処理部]
適応アレイ処理部1117は、抽出・同相化された2つの周波数分解データセットaとbの時系列データを、正面0°に中心指向性を向け、±φwに所定のマージンを加えた値を追従範囲とする適応アレイ処理に掛けることで、当該ストリームの音源音の周波数成分の時系列データを高精度に分離抽出する。この処理は方法こそ異なるが、周波数成分の時系列データを分離抽出する点において音源成分推定部1112と同様の働きをする。それ故、音源音再合成部1113は、適応アレイ処理部1117による音源音の周波数成分の時系列データからも、その音源音の振幅データを再合成することができる。
【0050】
なお、適応アレイ処理としては、参考文献3「天田皇ほか“音声認識のためのマイクロホンアレー技術”,東芝レビュー2004,VOL.59,NO.9,2004」に記載のように、それ自体がビームフォーマの構成方法として知られている「Griffith−Jim型一般化サイドローブキャンセラ」を主副2つに用いるなど、設定された指向性範囲内の音声を明瞭に分離抽出する方法を適用することができる。
【0051】
通常、適応アレイ処理を用いる場合、事前に追従範囲を設定し、その方向からの音声のみを待ち受ける使い方をするため、全方位からの音声を待ち受けるためには追従範囲を異ならせた多数の適応アレイを用意する必要があった。一方、本実施形態では、実際に音源の数とその方向を求めたうえで、音源数に応じた数の適応アレイだけを稼動させることができ、その追従範囲も音源の方向に応じた所定の狭い範囲に設定することができるので、音声を効率良くかつ品質良く分離抽出できる。
【0052】
また、このとき、事前に2つの周波数分解データセットaとbの時系列データを同相化することで、適応アレイ処理における追従範囲を正面付近にのみ設定するだけで、あらゆる方向の音を処理できるようになる。
【0053】
[音声認識部]
音声認識部1118は、音源成分推定部1112もしくは適応アレイ処理部1117により抽出された音源音の周波数成分の時系列データを解析照合することで、当該ストリームの記号的な内容、すなわち、言語的な意味や音源の種別や話者の別を表す記号(列)を抽出する。
【0054】
なお、方向推定部1111から音声認識部1118までの各機能ブロックは、必要に応じて
図11に図示しない結線によって情報のやりとりが可能であるものとする。
【0055】
出力部704は、音源情報生成部703による音源情報として、図形検出部702による直線群の数として得られる音源の数、方向推定部1111により推定される、音響信号の発生源たる各音源の空間的な存在範囲(円錐面を決定させる角度φ)、音源成分推定部1112により推定される、各音源が発した音声の成分構成(周波数成分毎のパワーと位相の時系列データ)、音源音再合成部1113により合成される、音源毎に分離された分離音声(振幅値の時系列データ)、時系列追跡部1114と継続時間評価部1115とに基づいて決定される、雑音源を除く音源の数、時系列追跡部1114と継続時間評価部1115とにより決定される、各音源が発した音声の時間的な存在期間、同相化部1116と適応アレイ処理部1117とにより求められる、音源毎の分離音声(振幅値の時系列データ)、音声認識部1118により求められる、各音源音声の記号的内容、の少なくとも1つを含む情報を出力する手段である。
【0056】
[話者クラスタリング部]
話者クラスタリング部304は、出力部704から出力された、各音源が発した音声の時間的な存在期間等に基づいて、時刻毎の話者識別情報310を生成する。話者識別情報310は、発言開始時刻および発言開始時刻に対して話者が関連付けた情報を有する。
【0057】
[ユーザインタフェース表示処理部]
ユーザインタフェース表示処理部305は、上述した音響信号処理に必要な各種設定内容の利用者への呈示、利用者からの設定入力受理、設定内容の外部記憶装置への保存と外部記憶装置からの読み出しを実行したり、(1)マイク毎の周波数成分の表示、(2)位相差(あるいは時間差)プロット図の表示(すなわち2次元データの表示)、(3)各種得票分布の表示、(4)極大位置の表示、(5)プロット図上の直線群の表示、(6)直線群に帰属する周波数成分の表示、(7)軌跡データの表示、のように各種処理結果や中間結果を可視化して利用者に呈示したり、所望のデータを利用者に選択させてより詳細に可視化するための手段である。このようにすることで、利用者が本実施形態に係る音響信号処理装置の働きを確認したり、所望の動作を行ない得るように調整したり、以後は調整済みの状態で本装置を利用したりすることが可能になる。
【0058】
ユーザインタフェース表示処理部305は、話者識別情報310に基づいて、例えば
図14に示す画面をLCD17Aに表示する。
【0059】
LCD17Aの上部には、話者Aを示すオブジェクト1401,話者Bを示すオブジェクト1402,話者Cを示すオブジェクト1403が示されている。LCD17Aの下部には、それぞれ話者の発言時間に対応するオブジェクト1413A,1411A,1413B,1412,1411Bが表示されている。オブジェクト1411A,1411Bは話者Aの発言時間に対応し、オブジェクト1401に対応する色で表示されている。オブジェクト1412は話者Bの発言時間に対応し、オブジェクト1402に対応する色で表示されている。オブジェクト1413A,1413Bは話者Cの発言時間に対応し、オブジェクト1403に対応する色で表示されている。発言があると、オブジェクト1413A,1411A,1413B,1412,1411Bが右から左へと時間と共に流れて表示されている。
【0060】
ところで、マイク間距離の位相差を利用した話者識別は端末が録音中に移動されると精度が低下する。本装置は、加速度センサ110から得られるx,y,z軸方向の加速度および端末の傾きを話者識別に用いることで精度低下による利便性低下を抑制する。
【0061】
制御部307は、前記加速度センサによって検出された加速度に応じて、話者の方向を推定する処理に係るデータの初期化を発話方向推定部303に要求する。
【0062】
図15は、話者識別に係るデータを初期化する手順を示すフローチャートである。
【0063】
制御部307は、加速度センサ110から得られる現在の機器10の傾きと話者識別を開始した時の機器10の傾きとの差が閾値を超えているかを判定する(ステップB11)。閾値を超えていると判定した場合(ステップB11のYes)、制御部307は、話者識別に係るデータの初期化を発話方向推定部303に要求する(ステップB12)。発話方向推定部303は、話者識別に係るデータを初期化する(ステップB13)。そして、発話方向推定部303は、発話方向推定部303内の各部によって新たに生成されたデータに基づいて話者識別処理を行う。
【0064】
初期状態を超えていないと判定した場合(ステップB12のNo)、制御部307は、
加速度センサ110から得られる機器10のx,y,z軸方向の加速度の値が周期的な値を取るようになったかを判定する(ステップB14)。加速度の値が周期的な値を取るようになったと判定した場合(ステップB13のYes)、制御部307は、録音処理部306に録音処理の停止を要求する(ステップB15)。また、制御部307は、周波数分解部301、音声区間検出部302、発話方向推定部303、および話者クラスタリング部304に処理の停止を要求する。録音処理部306は、録音処理を停止する(ステップB16)。周波数分解部301、音声区間検出部302、発話方向推定部303、および話者クラスタリング部304は、処理を停止する。
【0065】
本実施形態によれば、加速度センサ110によって検出された加速度に応じて、話者の方向を推定する処理に係るデータの初期化を発話方向推定部303に要求することで、ユーザが持った状態で音声が集音されていても、話者の方向を推定する精度が低下することを抑制することが可能になる。
【0066】
なお、本実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【0067】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。