説明

会議分析システム

【課題】
会議中の複数の参加者の音声を取得して,刻々と変わる参加者の会話状況をリアルタイム
に表示することで,より積極的な議論を誘発するような会議可視化システムを提供する。
【解決手段】
複数の会議参加者に対応した複数の音声収集部から収集した音声データを音声処理サーバ
40で処理し、発話情報を抽出する。この発話情報を集計処理サーバ200に順次入力す
る。処理サーバ200のストリームデータ処理部で、この発話情報に対して、クエリ処理
を施すことにより会議参加者の会議における発言回数累積値などのアクティビティデータ
を生成する。表示処理部203は、このアクティビティデータに基づき、会議参加者の対
話状況を円の大きさや線の太さなどを用いて可視化して表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のメンバが集まる会議等において、音声データの収集および解析を行な
うことによって、リアルタイムにメンバ間のインタラクション状況を表示するための会議
可視化技術に関する。
【背景技術】
【0002】
知識労働者の生産性、創造性を向上させる手法が注目を集めている。新規のアイデアや
知識(ナレッジ)を創出するためには、異分野の専門家が集まり、議論を重ねることが重
要である。その中でも、個人の持つ知恵を組織の財産として共有・管理していくための方
法としてナレッジマネジメントと呼ばれる方法論が注目されている。ナレッジマネジメン
トは、組織文化・風土の改革までを含めた考え方であり、情報技術による知識共有の支援
ツールとしてナレッジマネジメント支援ツールと呼ばれるソフトウェアが開発・販売され
ている。現在販売されているナレッジマネジメント支援ツールの多くはオフィスで生産さ
れた文書を効率的に管理する機能が中心である。また、オフィス内の知識の多くがメンバ
間のコミュニケーションの中に存在することに注目したものがある。特許文献1には、組
織のメンバ間でなされる対話の状況を蓄積する技術が開示されている。更に、電子的なコ
ミュニケーションの場を提供することで知識の表出化を促進するツールが開発されている
。特許文献2には、電子的なインタラクションという観点において、電子メールの送受信
数カウントの比較結果によってメンバ間の影響を表示する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−202035号公報
【特許文献2】特開2004−046680号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
新規のアイデアや知識(ナレッジ)を創出するためには、異分野の専門家が集まり、議
論を重ねることが重要であり、有限の時間を有効に使った実りのある議論のプロセスが重
要である。従来のナレッジマネジメントツールは、議論の過程に着目したものではなく、
その結果に対しての情報共有に主眼をおいている。特許文献1では、参加者もしくは参加
者以外のものが蓄積された対話状況を再現することが目的であり、対話のプロセス自体に
注目したものではない。また、特許文献2では、メンバ間の影響度合いを計算しているが
、電子メールの送受信数という単純な数値に基づいており、議論のプロセスにまで踏み込
んだものではない。しかも、電子メールによるインタラクションは、一般的に深い議論を
行なうには、適しておらず、例え、高精細なテレビ会議システムなど、電子的なインタラ
クション技術が成熟したとしても、フェイス・トゥ・フェイスでの議論を完全に置換する
ものにはなり得ない。オフィスでのナレッジ創出には電子的なメディアを介さないフェイ
ス・トゥ・フェイスでの会話や会議が必須となっている。
【0005】
本発明は、複数のメンバが集まる会議等において、アイデアやナレッジの創出を促進・
誘発するための情報処理システムに関するものである。会議中の音声を取得して、発言者
(発話者)および、その発言回数、対話シーケンス、会議の活性度を計算して、刻々と変
わる会議の状況をリアルタイムに表示することで、参加者自身にフィードバックがかかり
、より積極的な議論を誘発するする会議可視化システムの提供を目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明においては、会議における複数の会議参加者間の対話
状況を可視化して表示する会議可視化システムであって、会議参加者に対応した複数の音
声収集部と、音声収集部から収集した音声データを処理し、発話情報を抽出する音声処理
部と、音声処理部で抽出された発話情報が順次入力され、この発話情報に対してクエリ処
理を施すことにより会議参加者の会議におけるアクティビティデータを生成するストリー
ム処理部と、このアクティビティデータに基づき、前記会議参加者の対話状況を可視化し
て表示させる表示処理部とを有する
会議可視化システムを提供する。
本発明においては、音声データに所定の処理を行ない、発言者およびその発言回数、対
話回数を特定し、発言回数を円の大きさで、対話回数を線の太さで、リアルタイムに表示
する。さらに、キーストローク情報から得られた議論内容、発言者毎の発言回数累積、活
性度を同時に表示する。
【発明の効果】
【0007】
本発明によれば、議論状況をリアルタイムに把握しながら、議論を行なうことにより、
発言量が足りないメンバに対しては発言を促すようなフィードバックがかかる。もしくは
、会議の調停者が、議論状況をリアルタイムに把握しつつ、より多く参加者からのアイデ
アを出してもらうようなコントロールを行なうことで、議論の活性化および有効なナレッ
ジ創出が期待できる。
【図面の簡単な説明】
【0008】
【図1】第一の実施例の会議可視化システムの構成図。
【図2】第一の実施例の会議可視化システムのシーケンス図。
【図3】第一の実施例の会議可視化システムの使用例を示す図。
【図4】第一の実施例の参加者登録画面のイメージ図。
【図5】実施例の一般的なストリームデータ処理の構成図。
【図6】実施例の入力ストリームのスキーマ登録例を説明するための図。
【図7】実施例の音源選択処理の実現形態を説明するための図。
【図8】実施例のスムージング処理の実現形態を説明するための図。
【図9】実施例のアクティビティデータ生成処理の実現形態を説明するための図。
【図10】実施例のアクティビティデータ生成処理の実現形態を説明するための図。
【図11】第二の実施例の無線センサノードのブロック図。
【図12】第二の実施例の名札型センサノードの使用形態を説明するための図。
【図13】実施例のアクティビティデータ生成処理の実現形態を説明するための図。
【図14】会議可視化システムの処理シーケンスの他の実施例を示す図。
【図15】ストリームデータ処理による、会議可視化データ処理の実現例を詳細に説 明するための図。
【図16】会議可視化システムの各実施例における会議の活性化度表示の他の表示例 を示す図。
【図17】会議可視化システムの各実施例における会議の活性化度表示の他の表示例 を示す図。
【発明を実施するための形態】
【0009】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【実施例1】
【0010】
図3に第一の実施例の会議可視化システムを利用した会議シーンの一例を示す。4人の
メンバ(メンバA、メンバB、メンバC、メンバD)が会議を行なっている。会議卓に設
置されたマイク(マイクA、マイクB、マイクC、マイクD)より各メンバの発話がセン
シングされて、これらの発話データは音声処理サーバ40を経由したのち、集計処理サー
バ200で所定の処理が行なわれ、最終的に、この会議の状況がモニタ画面300にリア
ルタイムに表示されている。参加メンバが可視化された会議状況から直接フィードバック
を受けることで、各メンバが発言のモチベーションを高めたり、司会者がより多くのアイ
デアが集まるような会議進行を行なう、といった効果が期待される。なお、ここで音声処
理サーバ40や集計処理サーバ200などのサーバは、通常のコンピュータシステムと同
義であり、例えば、集計処理サーバ200は、処理部(CPU)、記憶部(半導体メモリ
や磁気記憶装置)、キーボードやマウスなどの入力部、ネットワークと接続される通信部
などの入出力インタフェース部、更に必要ならCDやDVDなどのメディアの読取書込み
部などが内部バスで接続されている構成を有する。この音声処理サーバ40と集計処理サ
ーバ200は、一個のサーバ(コンピュータシステム)で構成して良いことはいうまでも
ない。
【0011】
図1に第一の実施例の会議可視化システムの全体図を示す。会議可視化システムは、活
動状況のセンシング、センシングデータの集計・解析処理、および、結果の表示、という
大きく分けて3つの機能より構成される。以下、これらの順番に従ってシステムの詳細を
説明する。会議卓30には、メンバの着座位置に応じて音声収集部であるセンサ(マイク
)20が設置されており、メンバが会議にて発言を行なった場合には、これらセンサ20
にて発言のセンシングを行なう。また、会議卓30には、パーソナルコンピュータ(PC
)10が設置されている。このPC10は、キーストローク情報出力部として機能し、会
議の記録係が会議録を記述する際のキーストロークデータを出力する。このキーストロー
クデータは、集計処理サーバ200の入出力インタフェース部を介して、サーバ200内
に入力される。
【0012】
図1の例においては、4つのセンサ(センサ20−0〜20−3)が設置されており、
それぞれ、メンバA〜メンバDの発話音声を取得する。センサ20から取得された音声デ
ータは音声処理サーバ40に転送される。音声処理サーバ40においては、その内部に設
置されたサウンドボード41にて音声データのサンプリング処理が行なわれ、その後、音
声処理部42にて、音の特徴量データ(具体的には、音声エネルギーの大きさ等)が抽出
される。通常この音声処理部42は、音声処理サーバ40内の図示されていない処理部(
CPU)におけるプログラム処理として構成される。そして、音声処理サーバ40にて生
成された特徴量データは、その入出力インタフェース部を介して、メンバの発話情報とし
て集計処理サーバ200の入出力インタフェース部に転送される。転送される音声特徴量
データ52は、時刻52T、センサID(識別子)52S、および、エネルギー52Eを
含んでいる。また、発言者発言内容出力部であるPC10から取得されたキーストローク
データ51も、集計処理サーバ200に転送され、これは、時刻51T、発言者51N、
および、発言内容51Wを含んでいる。
【0013】
これらのセンシングデータは、集計処理サーバ200内のストリームデータ処理部10
0にて、会議の状況を可視化するためのデータである、アクティビティデータADに変換
される。ストリームデータ処理100では、それぞれのデータソースに対応したWind
ow110を持っており、一定時間メモリに蓄えられている時系列のデータセットに対し
て、所定の数値演算処理を行なう。この演算処理は、リアルタイムクエリ処理120と呼
ばれ、具体的なクエリの設定や、参加者とデータのIDとの対応付けは、それぞれ、クエ
リ登録インタフェース202、参加者登録インタフェース201を通して行なわれる。な
お、上述のストリームデータ処理部100、参加者登録インタフェース201、クエリ登
録インタフェース202は、先に説明した集計処理サーバ200の図示されない処理部(
CPU)で実行されるプログラムとして構成される。
【0014】
通常、ストリームデータ処理部100で生成されたアクティビティデータADは、集計
処理サーバ200中の図示されない記憶部中のテーブルなどに記憶され、順次、表示処理
部203の処理対象なる。本実施例では、具体的な、アクティビティデータADとして、
4つのデータが生成される。
【0015】
1つ目は、議論活性化度54であり、これは、時刻54Tと、その時刻での議論の活性
化度54Aより構成される複数のリストである。議論活性化度54Aは、その議論に関し
ての発言量総和やメンバ参加数等をパラメータにして、計算される。例えば、単位時間当
たりの、発言総回数と発言を行なった参加者総数によって決定される。同図1では、一分
当たりの議論活性化度54を例示している。2つ目のアクティビティデータは、発言内容
データ55であり、これは、時刻55Tと、その時刻に対応する発言者55Sと発言内容
55C、および、重要性55Fより構成されている。実際には、PC10からのキースト
ロークデータ51に含まれる、時刻51T、発言者51N、および、発言内容51Wが、
それぞれ、時刻55T、発言者55S、発言内容55Cにマッピングされる。3つ目のア
クティビティデータは、発言回数データ56であり、これは、時刻56Tと、その時刻に
対応する、発言者56Nと、発言者56Nに対応する発言累積(回数)56Cより構成さ
れている。4つ目のアクティビティデータは、発言シーケンスデータ57であり、これは
、時刻57Tと、その時刻に対応する、発言者の発話の順序関係である。具体的には、そ
の時刻にて、発言者(前)57Bの発話の直後に、発言者(後)57Aが発話を行なった
回数57Nを、あるウィンドウ時間内で求めたものである。
【0016】
さて、ストリームデータ処理部100で生成されたアクティビティデータADに基づき
、表示処理部203にて描画処理が行なわれる。即ち、アクティビティデータADは、次
段の表示処理部203にて、描画処理の素材データとして使用される。この表示処理部2
03も集計処理サーバ200の処理部(CPU)で実行される描画処理プログラムとして
提供される。例えば、Webベースでの表示を行なう場合には、表示処理部203でHT
ML(Hyper Text Makeup Language)画像の生成処理等が行
なわれる。表示処理部203で生成された画像は、入出力インタフェース部を介して、モ
ニタに出力され、モニタ画面300に示される画面構成で表示される。会議の様子は、モ
ニタ画面300にて、活性度・発言表示310、発言累積320、および、発言シーケン
ス330の3つの要素として表示される。
【0017】
以下、素材データであるアクティビティデータを用いて表示される3つの要素について
説明する。活性度・発言表示310では、時間軸に沿って、リアルタイムにその会議の活
性度311と発言313が表示される。活性度311は、アクティビティデータADの議
論活性化度54の表示を行なったものであり、発言313はアクティビティデータAD発
言内容データ55を表示したものである。また、会議の統計データなどに基づいて、活性
度の指標312を表示することも可能である。発言累積320は、アクティビティデータ
ADの発言回数データ56に基づいて、会議開始からの参加者毎の発言回数を累積として
表示したものである。最後に、発言シーケンス330は、アクティビティデータADの発
言回数データ56と発言シーケンスデータ57を使用して、参加者間の発話のやり取りを
可視化したものである。
【0018】
具体的には、この発言シーケンス330で図示されている参加者毎の円の大きさ(33
1A、331B、331C、および、331D)は、過去から現在までの一定期間(例え
ば5分間)においての発言回数を円の大きさとして表しており、円と円との間のリンクの
太さは、参加者間での会話が多いか少ないか(会話のインタラクションの量)を可視化し
たものである。例えば、AとBとの間のリンク332は細く、AとDとの間のリンク33
3は太く描かれており、AとDとのインタラクションが多いことが示されている。本例で
は、Aの発言の後にDが発言した場合と、Dの発言の後にAが発言した場合とは区別され
てはいないが、発言シーケンスデータ57を使用することによりこれらを区別するような
表示方法も可能である。素材データ各々を用いて、これら活性度・発言表示310、発言
累積320、および発言シーケンス330の各要素を適宜表示することは、通常の図形描
画処理プログラムを、集計処理サーバ200の図示されない処理部(CPU)で実行する
ことにより実現できることは言うまでもない。
【0019】
図2は、図1で示した全体図における代表的な機能モジュールでの処理シーケンスを示
したものである。まず音声収集部としてのセンサ(マイク)20では音声データが取得さ
れる(20A)。次に、サウンドボード41にて、音声のサンプリング処理が行なわれる
(41A)。次に音声処理部42にて、発話情報としての特徴量の抽出(具体的にはエネ
ルギーへの変換)が行なわれる(42A)。エネルギーは、例えば数ミリ秒の音波形の絶
対値の2乗を全範囲に渡って積分したものである。なお後段にてより確度の高い音声処理
を行なうために、ここで、音声/非音声の識別を行なうことも可能である(42B)。音
声/非音声の識別方法として、時間におけるエネルギーの変化度合いによる識別があげら
れる。音声には音波形エネルギーの強弱とその変化パターンがあり、それらを用いること
で音声と非音声の識別を行なう。上述の通り、特徴量抽出42A、更には音声/非音声判
別42Bは、図示されない処理部(CPU)のプログラム処理として実行される。
【0020】
次に、ストリームデータ処理部100にて、音源の選択(100A)、スムージング処
理(100B)、アクティビティデータ生成(100C)が行なわれる。最後に、表示処
理部203にて、アクティビティデータADに基づいた、画面データ生成(203A)が
行なわれる。なお、これらの具体的構成は他の実施例とも共通する部分が多いので後述す
る。
【0021】
図4は参加者の登録画面60を示したものである。会議卓30のそれぞれの座席に座る
メンバとマイク(20)とを対応させるために、画面の座席位置(61A〜61F)の空
欄に参加者の名前を入力して登録を行なう(62)。図4では、座席位置61A、61B
、61C、61Dに、それぞれ、参加者の名前A、B、C、Dを登録している例を示して
いる。なお、この登録画面60は、上述したPCの画面や、各自の座席位置に設置した手
書き文字入力タブレットの入力画面等を用いれば良い。これらの登録作業は、これらの手
段によって入力された名前データに基づき、集計処理サーバ200の参加者登録インタフ
ェース201を使用して行なわれる。
【0022】
以上説明した第一の実施例の会議可視化システムにより、発言者および、その発言回数
、対話シーケンス、会議の活性度を計算して、刻々と変わる会議の状況をリアルタイムに
表示することが可能となるため、参加者にフィードバックがかかって、より積極的で活性
度の高い議論を誘発することができる。
【実施例2】
【0023】
第一の実施例では、マイク20から取得した音声データをベースに会議を可視化する方
法を示した。第二の実施例においては、会議の参加メンバに無線センサノードと呼ばれる
デバイスを与えることで、音声以外の情報も加味してより詳細に会議の状況を可視化する
会議可視化システムを提供する。
【0024】
まず、無線センサノードの構成について図11を用いて説明する。図11は、無線セン
サノード70の構成の一例を示すブロック図である。無線センサノード70は、メンバ自
身の動きの測定(加速度を使用)、音声の測定(マイクロホンを使用)、着席位置の測定
(赤外線の送受信を使用)を行なうセンサ74と、センサ74を制御するコントローラ7
3と、無線基地局76と通信を行なう無線処理部73と、これらの各ブロックに電力を供
給する電源71、無線データの送受信を行なうアンテナ75より構成される。センサ74
には具体的には、加速度センサ741、マイクロホン742、赤外線送受信器743が搭
載されている。
【0025】
コントローラ73は、予め設定された周期、もしくは不定期にセンサ74の測定データ
を読み込み、この測定データに予め設定したセンサノードのIDを加えて無線処理部72
に転送する。測定データにはセンシングを行った時間情報をタイムスタンプとして与える
場合もある。無線処理部72は、コントローラ73から送られたデータを基地局76(図
12に示す)に送信する。電源71は、電池を使用する場合や、太陽電池や振動発電など
の自律発電機構を具備する構成としても良い。
【0026】
図12に示すように、この無線センサノード70を名札型に加工した名札型センサノー
ド70Aをユーザが装着することにより、ユーザの状態(動き等)に関するセンシングデ
ータを、リアルタイムに無線基地局76を経由して、集計処理サーバ200に送信するこ
とが可能となる。さらに、図12に示すように、会議卓の各座席位置に設置された赤外線
送信器77からのID情報を、名札型センサノード70Aが赤外線送受信器743にて定
期的に検出することで、着席位置の情報を自律的に集計処理サーバ200に送信すること
も可能となる。このように、本実施例においては、名札型センサノード70が、ユーザの
着席位置を、自動的に集計処理サーバ200に送付すれば、登録画面60を使用した参加
者登録処理(図4)を自動化することが可能となる。
【0027】
さて次に、図5以下の図面を用いて、上述した会議可視化システムを実現するストリー
ムデータ処理部100について詳述する。上述の各実施例におけるアクティビティデータ
生成にはストリームデータ処理を用いる。このストリームデータ処理と呼ばれる技術自身
は公知の技術であり、B.Babcock、S.Babu、M.Datar、R.Mot
wani and J.Widom、“Models and issues in d
ata stream systems”、In Proc. of PODS 200
2、 pp.1−16.(2002)、A.Arasu、S.Babu and J.W
idom、“CQL: A Language for Continuous Que
ries over Streams and Relations”、In Proc
. of DBPL 2003、 pp.1−19 (2003)、などの文献に開示さ
れている。
【0028】
図5は図1のストリームデータ処理部100の機能動作を説明するための図である。ス
トリームデータ処理は、絶え間なく到来するデータの流れを対象に、フィルタリング処理
や集計処理などを、継続的に実行する技術である。個々のデータにはタイムスタンプが付
与されており、データはタイムスタンプの昇順に並んで流れる。以下では、このようなデ
ータの流れをストリームと呼び、個々のデータをストリームタプル、あるいは単にタプル
と呼ぶ。ある一つのストリーム上を流れるタプルは、単一のデータ型に従う。このデータ
型をスキーマと呼ぶ。スキーマとは任意個のカラムの組合せであり、各カラムは一つの基
本型(整数型、実数型、文字列型など)と、一つの名前(カラム名)の組合せである。
【0029】
ストリームデータ処理は、スキーマが定義されたストリーム上のタプルを対象に、リレ
ーショナルデータベースの計算モデルである関係代数に準じて、射影、選択、結合、集計
、和集合、差集合などの演算を実施する。但し、関係代数はデータの集合に対して定義さ
れるので、絶え間なくデータ列が続く(即ち、無限に集合の要素が増え続ける)ストリー
ムに対して関係代数を継続的に処理するには、処理対象となるタプルの集合を常に限定し
ながら実行する必要がある。
【0030】
このために、ストリームデータ処理では、ある時刻において処理対象となるタプル集合
を限定する、ウィンドウ演算が定義されている。このように、ストリーム上のタプルは、
関係代数で処理される前に、まずウィンドウ演算によって、処理対象となる期間を定義さ
れる。以下では、この期間をタプルの生存期間と呼び、生存期間を定義されたタプルの集
合をリレーションと呼ぶ。そして、このリレーションに対して関係代数が実施される。
【0031】
ウィンドウ演算の例を、501〜503を用いて説明する。501はストリームを、5
02および503は、ストリーム501に対してウィンドウ演算を施した結果である、リ
レーションを示している。ウィンドウ演算は、生存期間の定義の仕方によって、時間ウィ
ンドウと個数ウィンドウに分かれる。時間ウィンドウは、各タプルの生存期間を定数時間
に定める。一方、個数ウィンドウは、同時に生存するタプルの個数を定数個に制限する。
リレーション502および503は、ストリーム501を時間ウィンドウ(521)と個
数ウィンドウ(522)で処理した結果を、それぞれ示している。
【0032】
ストリームの図における各黒丸はストリームタプルを表す。ストリーム501には、1
時2分3秒、4秒、7秒、8秒、10秒、および11秒に流れてくる、6つのストリーム
タプルが存在する。一方、リレーションの図における、黒丸を起点、白丸を終点とする各
線分は、タプルの生存期間を表す。なお、丁度終点の時刻は生存期間に含まれない。リレ
ーション502は、ストリーム501を、生存期間3秒の時間ウィンドウで処理した結果
である。例として、1時2分3秒のタプルの生存期間は、1時2分3秒から1時2分6秒
までとなる。但し1時2分6秒丁度は生存期間に含まれない。リレーション503は、ス
トリーム501を、同時生存数3個の個数ウィンドウで処理した結果である。例として、
1時2分3秒のタプルの生存期間は、1時2分3秒から、その3個後に流れてくるタプル
のタイムスタンプ1時2分8秒までとなる。但し1時2分8秒丁度は生存期間に含まれな
い。
【0033】
リレーション上の関係代数は、入力のリレーションに対する演算結果として、次のよう
な性質を持つ結果リレーションを出力する。まず、入力リレーションにおいて、ある時刻
に生存するタプルの集合に対し、従来の関係代数を実施した結果を、該時刻における結果
タプル集合と呼ぶ。このとき、任意の時刻において、該時刻における結果タプル集合が、
結果リレーションにおいて該時刻に生存するタプルの集合と一致する。
【0034】
リレーション上の関係代数の例を、504〜508を用いて説明する。この例は、リレ
ーション504とリレーション505の間の差集合演算を示し、リレーション506、5
07、508は、その結果を示している。例えば、入力リレーション504と505にお
いて、1時2分8秒に生存するタプル集合は、それぞれ2個のタプルと1個のタプルから
成る。従って、1時2分8秒の結果タプル集合(即ち、両タプル集合の差集合)は、2−
1=1個のタプルから成るタプル集合である。このような関係が、1時2分7秒から1時
2分9秒までの期間で成立する(但し、1時2分9秒丁度は含まず)。従って、結果リレ
ーションにおいて、この期間に生存するタプルは1個となる。結果リレーションの例とし
て、506、507、508は、全てこの性質を持つ。このように、一般に、リレーショ
ン上の関係代数の結果は、一意には定まらない。但し、ストリームデータ処理においては
、その何れも、リレーション上の関係代数の対象として等価である。
【0035】
以上のように、リレーション上の関係代数の結果は一意には定まらないため、そのまま
アプリケーションに渡すことは好ましくない。これに対し、ストリームデータ処理では、
リレーションをアプリケーションに渡す前に、再びストリームに変換する演算が用意され
ている。これを、ストリーム化演算と呼ぶ。ストリーム化演算は、等価な結果リレーショ
ンの全てを同一のストリームに変換する。
【0036】
ストリーム化演算によってリレーションから変換されたストリームを、さらにウィンド
ウ演算でリレーションに変換することも可能である。このように、ストリームデータ処理
の中では、リレーション化とストリーム化を任意に組合せることが可能である。
【0037】
ストリーム化演算は、IStream、DStream、RStreamの3種類に分
かれる。IStreamは、リレーションにおいて、ある時刻に生存するタプル集合に、
タプルの増加があった場合に、その増加分のタプルを、該時刻をタイムスタンプとするス
トリームタプルとして出力する。DStreamは、リレーションにおいて、ある時刻に
生存するタプル集合に、タプルの減少があった場合に、その減少分のタプルを、該時刻を
タイムスタンプとするストリームタプルとして出力する。RStreamは、一定時間間
隔で、リレーションにおいてその時点で生存するタプル集合を、ストリームタプルとして
出力する。
【0038】
ストリーム化演算の例を、509〜511を用いて説明する。ストリーム509は、リ
レーション506〜508を、IStream(523)でストリーム化した結果である
。例として、リレーション506では、1時2分3秒にタプルが0個から1個に、1時2
分5秒に1個から2個に増える。このため、ストリーム509には1時2分3秒と1時2
分5秒に、それぞれ増分1個のストリームタプルが出力される。この結果は、リレーショ
ン507に対して処理しても変らない。例えば、リレーション507においては、1時2
分9秒に一つのタプルの生存期間が始まっているが、同時に、別のタプル(1時2分3秒
から生存期間が始まるタプル)の生存期間が終わる。このとき、後者のタプルの生存期間
に1時2分9秒丁度は含まれないため、1時2分9秒に生存するタプルは、丁度1個であ
る。従って、1時2分9秒にはタプルの増減は無いことになり、リレーション506に対
する結果と同じく、1時2分9秒のストリームタプルは出力されない。DStream(
524)とRStream(525)についても同様に、リレーション506、507、
508の何れを対象としても、ストリーム化した結果は、それぞれストリーム510およ
びストリーム511になる(但し、RStreamのストリーム化間隔は1秒)。このよ
うに、一意には定まらない結果リレーションを、ストリーム化演算によって、一意のスト
リームに変換することが可能である。なお、以降の図では、生存期間終了の白丸を省略す
る。
【0039】
ストリームデータ処理では、データ処理の内容をCQL(Continuous Qu
ery Language)という宣言型言語で定義する。CQLの文法は、リレーショ
ナルデータベースにおいて標準的に利用される、関係代数に基づくクエリ言語SQLに、
ウィンドウ演算、およびストリーム化演算の記法を追加した形式をとる。CQL文法の詳
細な定義は、http://infolab.stanford.edu/stream
/code/cql−spec.txtに開示されている。ここでは、その概要を説明す
る。次の4行は、CQL文法に従うクエリの一例である。
【0040】
REGISTER QUERY q AS
ISTREAM(
SELECT c1
FROM st[ROWS 3]
WHERE c2=5)
FROM句の“st”は、ストリームを表す識別子(以下、ストリーム識別子、あるい
はストリーム名と呼ぶ)である。ストリーム名に続く“[“と”]”に囲まれた部分は、
ウィンドウ演算を表す記法である。例中の記述“st[ROWS 3]”は、ストリーム
stを、同時生存数3個の個数ウィンドウによって、リレーションに変換することを示し
ている。従って、この記述全体では、リレーションを出力する表現となる。なお、時間ウ
ィンドウは“[RANGE 3 sec]”のように、“RANGE”以降に生存期間を
示す記法となる。この他の記法として、“[NOW]”と、“[UNBOUNDED]”
があり、それぞれ、非常に短い(但し、0ではない)生存期間と、永続を意味する。
【0041】
FROM句のリレーションを対象に、関係代数が実施される。例中の記述“WHERE
c2=5”は、カラムc2が5であるタプルを選択することを示している。また、例中
の記述“SELECT c1”は、選択されたタプルのc1カラムのみを残して、結果リ
レーションとすることを示している。つまり、これらの記述の意味はSQLと全く同じで
ある。
【0042】
さらに、SELECT句からWHERE句までの、リレーションを生成する表現全体を
、“(“と”)”で囲い、その前にストリーム化指定(例中の記述“ISTREAM”)
を置く記法は、該リレーションのストリーム化演算を示している。ストリーム化指定は、
他に“DSTREAM”と“RSTREAM”があり、“RSTREAM”では、“[“
、”]”で囲って、ストリーム化間隔を指定する。
【0043】
この例のクエリは、以下のように分解して定義することも可能である。
【0044】
REGISTER QUERY s AS
st[ROWS 3]
REGISTER QUERY r AS
SELECT c1
FROM s
WHERE c2=5
REGISTER QUERY q AS
ISTREAM(r)
ここで、ウィンドウ演算の前に置けるのはストリームを生成する表現、FROM句に登
場できるのはリレーションを生成する表現、ストリーム化演算の引数はリレーションを生
成する表現に、それぞれ限定される。
【0045】
図5中のストリームデータ処理部100は、以上のようなストリームデータ処理を実現
するためのソフトウェア構成を示す。ストリームデータ処理部100は、CQLで定義さ
れたクエリが、クエリ登録インタフェース202に与えられると、クエリ解析部122で
クエリを構文解析し、クエリ生成部121によって、木構造の実行形式(以下、実行木と
呼ぶ)に展開する。該実行木は、各種演算を行なう演算子(ウィンドウ演算子110、関
係代数演算子111、ストリーム化演算子112)をノードとし、オペレータ間を繋ぐタ
プルキュー(ストリームキュー113、リレーションキュー114)をエッジとして構成
される。ストリームデータ処理部100は、該実行木上の各演算子の処理を、適当な順番
で実行することで、処理を進める。
【0046】
上述したストリームデータ処理技術に対応し、各実施例において、音声処理サーバ40
から送られる発話情報であるストリーム52、参加者登録インタフェース201を介して
登録されるストリーム53、58などの、ストリームデータ処理100の外部から送られ
るストリームタプルは、まず、ストリームキュー113に入る。これらタプルは、ウィン
ドウ演算子110によって生存期間を定義され、リレーションキュー114に入る。リレ
ーションキュー114上のタプルは、関係代数演算子111によって、リレーションキュ
ー114を介してパイプライン的に処理される。リレーションキュー114上のタプルは
、ストリーム化演算子112によってストリーム化され、ストリームキュー113に入る
。ストリームキュー113上のタプルは、ストリームデータ処理部100の外部へ送られ
るか、ウィンドウ演算子110で処理される。ウィンドウ演算子110からストリーム化
演算子112までのパスには、リレーションキュー114で接続された任意個の関係代数
演算子111が置かれる。一方、ストリーム化演算子112からウィンドウ演算子110
へは、一つのストリームキュー113で直接つながる。
【0047】
次に、図15を用いて、実施例の会議可視化システムにおけるストリームデータ処理部
100による会議可視化データ処理の実現方法を具体的に開示する。
【0048】
1500〜1521は、ストリーム、またはリレーションの、識別名、およびスキーマ
を表す。上側の太枠四角が識別名を、下側の四角の並びがスキーマを構成するカラム名を
示している。710、720、730、810、820、830、840、850、91
0、920、930、940、1000、1010、1020、1310、1320、1
330の角丸四角は、データ処理の基本処理単位を示している。基本処理単位のそれぞれ
を、CQL文法に従うクエリで実現する。クエリ定義、および動作の説明は、図7〜10
、および図13を用いて後述する。発話情報である音声特徴量データストリーム1500
は、音声処理サーバ40から、音量補正値ストリーム1501、および参加者ストリーム
1502は、参加者登録インタフェース201から、身振り強度ストリーム1503、お
よびうなずきストリーム1504は、名札型センサノード70から、発言ログストリーム
1505は、PC(キーストロークセンシング)10から、それぞれ送られてくる。これ
らを、音源選択100A、スムージング処理100B、およびアクティビティデータ生成
100Cの、各プロセスで順に処理して、出力となるストリーム1517〜1521を生
成する。1506〜1516は、中間データとなるストリーム、またはリレーションであ
る。
【0049】
音源選択100Aの処理は、基本処理単位710、720、730から構成される。各
処理の実現形態については、図7を用いて後述する。スムージング処理100Bは、基本
処理単位810、820、830、840、850から構成される。各処理の実現形態に
ついては、図8を用いて後述する。アクティビティデータ生成100Cの処理は、基本処
理単位910、920、930、940、1000、1010、1020、1310、1
320、1330から構成される。基本処理単位910〜940は、モニタ画面300の
320に可視化される発言数1517、330に可視化される発言時間1518、および
会話数1519を生成する。これら基本処理単位については、図9を用いて後述する。基
本処理単位1000〜1020は、モニタ画面300の311に可視化される活性度15
20を生成する。これら基本処理単位については、図10を用いて後述する。基本処理単
位1310〜1330は、モニタ画面300の313に可視化される発言ログ1521を
生成する。これら基本処理単位については、図13を用いて後述する。
【0050】
次に、図6を用いて、入力ストリームのスキーマ登録について開示する。
【0051】
コマンド600を、例えば、集積解析処理サーバ200の入力部からなどからクエリ登
録インタフェース202を介して、ストリームデータ処理部100に投入することで、入
力ストリーム1500〜1505を受け付ける6本のストリームキュー113が生成され
る。REGISTER STREAM の直後はストリーム名を、括弧内はスキーマを示
している。スキーマの、“,”に区切られた個々の記述は、カラムの名称と型の組合せを
示している。
【0052】
601は、音声特徴量データストリーム1500(voice)に入るストリームタプ
ルの例を示している。本例では、10ミリ秒毎に、4つのマイクから、センサID(id
カラム)と音量(energyカラム)を組み合わせたストリームタプルが生成される様
子を示している。
【0053】
次に、図7を用いて、音源選択処理100Aの基本処理単位710、720、730の
実現方法を開示する。
【0054】
コマンド700を、クエリ登録インタフェース202を介して、ストリームデータ処理
部100に投入することで、基本処理単位710、720、730を実現する実行木が生
成される。コマンド700は、3つのクエリ登録書式710、720、730に分けられ
、それぞれ、基本処理単位710、720、730の処理内容を定義する(以下同様に、
基本処理単位と、その処理内容を定義するクエリの登録書式を、同義として扱い、同一の
番号で示す。また、クエリ登録書式を、単にクエリと呼ぶ)。
【0055】
クエリ710は、10ミリ秒ごとの各時刻において、最大の音量を記録するマイク20
を選択する。まず好適には、各マイクの音量に、定数の補正値を加算する。会議卓に取り
付けられた各マイクの感度は、会議卓の形状、材質、壁に対する位置関係、マイク自体の
品質、など様々な要因により、バラつきを持つため、該加算処理により、マイクの感度を
均等化する。マイク毎に異なる補正値は、音量補正値ストリーム1501(offset
)として参加者登録インタフェース201より登録される。図1のストリーム58は、音
量補正値ストリームの例である(センサIDカラム58S、および補正値カラム58Vが
、それぞれ音量補正値ストリーム1501のidカラム、およびvalueカラムを示す
)。音声データストリーム1500と、音量補正値ストリーム1501とを、idカラム
に関する結合演算により結合し、ストリーム1500の音量カラム(energy)の値
に、ストリーム1501の補正値カラム(value)の値を加算し、この値を改めてe
nergyカラムとする。該energyカラムと、idカラムとを組み合わせたタプル
から成る、ストリームを、voice_rとする。ストリーム601とストリーム58に
対する、このクエリの結果をストリーム601Rに示す。
【0056】
該ストリームvoice_rから、集計演算“MAX(energy)”によって最大
音量を算出し、その値と同じ音量のタプルを、energyカラムに関する結合演算によ
り抽出する。ストリーム601Rに対するこのクエリの結果(voice_max_se
t)を、リレーション711に示す(クエリ710ではNOWウィンドウを用いており、
リレーション711の各タプルの生存期間は非常に短いため、点で図示する。以下、NO
Wウィンドウによって定義されるタプルの生存期間は点で示す。なお、本クエリに関して
は、NOWウィンドウの代わりに、10ミリ秒未満の時間ウィンドウを用いても構わない
)。
【0057】
同時刻に最大音量を記録するマイクが2つ以上存在する場合もある。これに対し、クエ
リ720は、クエリ710の結果から、センサIDが最小のマイクのデータのみを選択す
ることで、マイクを一つに絞り込む。まず、集計演算“MIN(id)”によって最小I
Dを算出し、その値と同じIDのタプルを、idカラムに関する結合演算により抽出する
。リレーション711に対するこのクエリの結果(voice_max)を、リレーショ
ン721に示す。
【0058】
クエリ730は、クエリ720の結果から、閾値を超えるデータのみを音源として残す
。また、センサIDを参加者データ53と付き合わせて、参加者名に変換する。まず、e
nergyカラムに関して範囲選択(>1.0)をかけ、idカラムに関する結合演算と
nameカラムの射影演算で、音源となる発話者名のストリームを生成する。リレーショ
ン721に対するこのクエリの結果(voice_over_threshold)を、
ストリーム731に示す。以上で、音源選択100Aの処理が完了する。
【0059】
次に、図8を用いて、スムージング処理100Bの基本処理単位810、820、83
0、840、850の実現方法を開示する。
【0060】
コマンド800を、クエリ登録インタフェース202を介して、ストリームデータ処理
部100に投入することで、基本処理単位810、820、830、840、850を実
現する実行木が生成される。
【0061】
クエリ810は、クエリ730で得られた音源データにおける、同一発言者の連続する
音源断片について、間欠部分を補完し、平滑化された発言期間を抽出する。まず、ウィン
ドウ演算“[RANGE 20 msec]”によって、ストリーム731上の各タプル
に20ミリ秒の生存期間を与え、“DISTINCT”(重複排除演算)によって、同一
発言者のタプル重複を排除する。ストリーム731に対するこのクエリの結果(voic
e_fragment)を、リレーション811に示す。リレーション812は、該結果
に至る中間状態であり、ストリーム731上の、nameカラムの値が“B”であるタプ
ルについて、ウィンドウ演算で生存期間を定義した結果である。ストリーム731上では
、9時2分5.03秒、5.05秒、および5.07秒において、nameカラムBのタ
プルが抜けているが、リレーション812では、20ミリ秒の生存期間によって補完され
る。一方、9時2分5.08秒と5.09秒のようにデータが連続する箇所では、生存期
間の重複が発生するが、DISTINCTによって排除される。その結果、nameカラ
ムBのタプルは、生存期間が9時2分5.02秒から5.11秒までの、一本のタプル8
13に平滑化される。nameカラムA、Dのタプルのように、散発的に現れるタプルに
ついては、タプル814、815、816のように、20ミリ秒の生存期間が定義された
タプルが散在する結果となる。
【0062】
クエリ820は、クエリ810の結果から、持続時間が非常に短い瞬間的な発言(期間
)を、ノイズとして除去する。まず、リレーション811の各タプルについて、ストリー
ム化演算“ISTREAM”とウィンドウ演算“[RANGE 50 msec]”によ
って、タプルの開始時刻から50ミリ秒の生存期間を持つコピー(nameカラムの値が
、元のタプルと同一のタプル)を生成し、差集合演算“EXCEPT”によって、リレー
ション811から差し引くことで、生存期間が50ミリ秒以下のタプルを除去する。リレ
ーション811に対するこのクエリの結果(speech)を、リレーション821に示
す。リレーション822は、該結果に至る中間状態であり、リレーション811上の各タ
プルについて、生存期間50ミリ秒のコピーを作成した結果である。リレーション811
と822の差集合を取ると、タプル814、815、816は、タプル824、825、
826によって完全に消去される。一方、タプル813については、タプル823の生存
期間を差引かれて、9時2分5.07秒から9時2分5.11秒までの生存期間を持つタ
プル827が残る。このように、生存期間が50ミリ秒以下のタプルは全て除去され、そ
れ以上の生存期間を持つタプルのみが、実際の発言データとして残る。
【0063】
クエリ830、840、および850は、クエリ820の結果から、ストリーム化演算
IStream、DStream、およびRStreamによって、それぞれ、発言の開
始時刻、終了時刻、および発言中の時刻をタイムスタンプとする、ストリームタプルを生
成する。リレーション821に対する、各クエリの結果(start_speech、s
top_speech、およびon_speech)を、それぞれストリーム831、8
41、851に示す。以上で、スムージング処理100Bが完了する。
【0064】
次に、図9を用いて、アクティビティデータ生成100C中の基本処理単位910、9
20、930、940の実現方法を開示する。コマンド900を、クエリ登録インタフェ
ース202を介して、ストリームデータ処理100に投入することで、基本処理単位91
0、920、930、940を実現する実行木が生成される。
【0065】
クエリ910は、クエリ830の結果から、会議中の累積発言回数をカウントする。ま
ず、ウィンドウ演算“[ROWS 1]”によって、発言開始タプルが発生する度にna
meカラムの値が切替るリレーションを生成する。但し、同一発言者の発言開始タプルが
連続する場合には、リレーションは切替らない。このリレーションをストリーム化演算“
ISTREAM”でストリーム化することで、発言者に変化があった際の、発言開始時刻
を切り出す。さらに、該ストリームをウィンドウ演算“[UNBOUNDED]”で永続
化し、nameカラムでグルーピングして、集計演算“COUNT”でカウントすること
によって、発言者ごとの累積発話回数を算出する。
【0066】
speechリレーション901に対するこのクエリの結果(speech_coun
t)を、リレーション911に示す。ストリーム912は、リレーション901に対する
クエリ830の結果(start_speech)である。リレーション913は、スト
リーム912を[ROWS 1]のウィンドウ演算で処理した結果である。ストリーム9
14は、リレーション913をIStreamでストリーム化した結果である。このとき
、タプル915の開始時刻に対して、ストリームタプル917が生成されるが、タプル9
15と916は、同一発言者“B”のリレーションであり、タプル915の終点とタプル
916の始点は同一時刻(9時18分15秒)になるため、9時18分15秒のタプルは
生成されない。ストリーム914を、nameでグルーピングして永続化してカウントし
た結果が、リレーション911となる。永続化したリレーションをカウントするので、ス
トリーム914にタプルが発生する度に、発言数が累積される。
【0067】
クエリ920は、クエリ850の結果から、過去5分間における発言者ごとの発言時間
を算出する。まず、on_speechストリームの各タプルに対し、ウィンドウ演算“
[RANGE 5 min]”で、5分間の生存期間を定義し、nameカラムでグルー
ピングして、集計演算“COUNT”によってカウントする。この処理は、過去5分間に
おいて、on_speechストリーム上に存在したタプルの個数を数えることに相当す
る。なお、on_speechストリームタプルは、秒間100個のレートで生成される
ため、SELECT句でこの個数を100で割って、秒単位の発言時間を算出する。
【0068】
クエリ930は、クエリ830および840の結果から、ある発言の終了後3秒以内に
、別の発言者の発言が開始されたケースを、二者間の会話として抽出する。まず、sto
p_speechストリームとstart_speechストリームの各タプルに対し、
それぞれウィンドウ演算“[RANGE 3 sec]”と“[NOW]”で、生存期間
を定義し、nameカラムに関する結合演算(一致しないことを条件とする)により、s
top_speechタプル発生の3秒以内に、start_speechタプルが発生
する組合せを抽出する。結果は、stop_speech.nameをpreカラムに、
start_speech.nameをpostカラムに射影して出力する。speec
hリレーション901に対するこのクエリの結果(speech_sequence)を
、ストリーム931に示す。ストリーム932は、リレーション901に対するクエリ8
40の結果(stop_speech)であり、リレーション933は、ストリーム93
2の各タプルに3秒間の生存期間を定義した中間状態である。また、ストリーム912を
NOWウィンドウでリレーションに変換した結果は、912と同一の図になる。該リレー
ションと、リレーション933の結合演算の結果を、さらにIStreamでストリーム
化した結果が、ストリーム931となる。
【0069】
クエリ940は、クエリ930の結果から、会議中の累積会話回数を、二者の組合せ別
にカウントする。まず、ウィンドウ演算“[UNBOUNDED]”で永続化し、“Gr
oup by pre,post”で、preカラムとpostカラムの組合せ別にグル
ーピングし、集計演算“COUNT”によってカウントする。永続化したリレーションを
カウントするので、ストリーム931にタプルが発生する度に、会話数が累積される。
【0070】
次に、図10を用いて、アクティビティデータ生成100C中の基本処理単位1000
、1010、1020の実現方法を開示する。クエリ1000、1010、および102
0を、クエリ登録インタフェース202を介して、ストリームデータ処理部100に投入
することで、それぞれ、基本処理単位1000、1010、および1020を実現する実
行木が生成される。これら3種のクエリは、全て会議の盛り上り度を算出する。但し、盛
り上り度の定義は各クエリで異なる。
【0071】
クエリ1000は、ストリーム1500(voice)の全マイクの音量値を、過去3
0秒間累積した値として、盛り上り度を算出する。本クエリは、ウィンドウ演算“[RA
NGE 30 sec]”と、集計演算“SUM(energy)”により、過去30秒
間におけるストリーム1500上のタプルのenergyカラム値の和を計算する。また
、ストリーム化演算“RSTREAM[3 sec]”によって、結果の出力を3秒間隔
としている(以下、クエリ1010、1020についても同様)。以上、クエリ1000
では、会議出席者の発言エネルギーの総和を、盛り上り度の指標としている。
【0072】
クエリ1010は、過去30秒間における、発言者数と会話回数の積として、盛り上り
度を算出する。この盛り上り度は先に説明した単位時間当たりの発言総回数と発言者総数
の積から算出する議論活性化度54の一具体例となる。クエリ1011は、ストリーム1
514(speech_sequence)の、過去30秒間のタプルをカウントする。
該クエリの結果のリレーション名をrecent_sequences_countとす
る。クエリ1012は、ストリーム1511(start_speech)の、過去30
秒間のタプルをカウントする。該クエリの結果のリレーション名をrecent_spe
akers_countとする。クエリ1013は、両者の積を算出する。recent
_sequences_countとrecent_speakers_countのど
ちらのリレーションにおいても、自然数の値を持つcntカラムのみから成るタプルが、
常に丁度一つ生存することになる。従って、両者の積を取った結果も、常に丁度一つのタ
プルが生存するリレーションとなる。
【0073】
但し、この積を単純に“recent_sequences_count.cnt *
recent_speakers_count.cnt”で計算すると、一人の発言者
が長時間話している期間では、会話数が0になるので、結果も0となってしまう。これを
回避するため、“recent_sequences_count.cnt”の代わりに
、“(recent_sequences_count.cnt +1/(1+rece
nt_sequences_count.cnt))”を利用する。“+”以降の、“+
1/(1+recent_sequences_count.cnt)”の部分は、整数
の商であるため、recent_sequences_count.cntが0の場合に
+1、0より大きい場合に+0となる。その結果、誰も発言者が居ない沈黙の期間は盛り
上り度が0、一人の発言者が長時間話している期間は1、二人以上の発言者がいる期間は
発言者数と会話数の積となる。以上、クエリ1010では、会議出席者の中で議論に参加
している人数が多いこと、および、意見の交換が頻繁であることを、盛り上がり度の指標
としている。
【0074】
クエリ1020は、発言者の身振りの強度として、盛り上り度を算出する。クエリ10
21は、身振りの瞬間強度を表すストリーム1503(motion)をNOWウィンド
ウで処理した結果のリレーションと、発言者の発言期間を表すリレーション1510(s
peech)とを、nameカラムに関する結合演算にかけることで、発言中の出席者に
ついて身振り強度を抽出する。クエリ1022は、過去30秒間における、発言者の身振
り強度を累積する。以上、クエリ1020では、発言者の身振りの強弱が、議論の白熱度
を反映すると仮定し、盛り上り度の指標としている。
【0075】
ここで示した盛り上り度の定義は一例であり、会議の盛り上り度の数値化は、確立した
定義のない、人間の主観に関わるデータであるため、試行を繰返し的確な定義を探索する
必要がある。新しい定義を試行する度に、算出ロジックを、C、C#、Java(登録商
標)などの手続き型言語でコーディングするのでは、開発工数が甚大である。特に、クエ
リ1010のような、発言間の順序関係に基づいた指標を算出するロジックは、コードが
複雑化し、デバグも困難となる。これに対し、議論活性化度などを例示して説明した本実
施例のように、ストリームデータ処理を利用することで、簡潔な宣言型クエリによる定義
が可能となるため、このような工数を大幅に軽減する。
【0076】
次に、図13を用いて、アクティビティデータ生成100C中の基本処理単位1310
、1320、1330の実現方法を開示する。
【0077】
コマンド1300を、クエリ登録インタフェース202を介して、ストリームデータ処
理100に投入することで、基本処理単位1310、1320、1330を実現する実行
木が生成される。
【0078】
多くの出席者から賛同を得た発言は、会議中の重要発言であると捉える。このような発
言を抽出するために、クエリ1310は、リレーション1510(speech)と、う
なずき状態を表すストリーム1504(nod)から、発言者の意見が多数の出席者に賛
同されている(=うなずかれている)状態を抽出する。うなずき状態の検出は、名札型セ
ンサノード70が備える加速度センサ741で計測する加速度値より、パターン認識技術
を利用して、実現することが可能である。本実施例では、1秒間隔で、その時刻において
出席者がうなずき動作中である場合に、該出席者名をnameカラムに示すタプルが発生
する、と仮定する。まず、ストリーム1504上の各タプルに対し、ウィンドウ演算“[
RANGE 1 sec]”によって1秒の生存期間を定義することで、出席者ごとのう
なずき期間を表すリレーションが得られる(例:リレーション1302)。
【0079】
該リレーションと、発言期間を表すリレーション1510(例:リレーション1301
)を、nameカラムに関する結合演算(一致しないことを条件とする)にかけることで
、発言者以外の出席者がうなずいている期間を、タプルの生存期間とするリレーション(
例:リレーション1312)が得られる。該リレーションにおいて、生存タプルが2個以
上ある(=2人以上の出席者が、うなずきながら聞いている)期間を、HAVING句に
よって抽出する。このとき、射影演算によって、発言者の名前(speech.name
カラム)と、定数文字列’yes’の値を持つflagカラムから成るタプルを出力する
(例:リレーション1313)。この結果をIStreamでストリーム化し、クエリ1
310の結果を得る(例:ストリーム1311)。ストリーム1311は、発言者Bの発
言が、他の出席者CとDの二人にうなずかれたタイミングで、タプルが発生する様子を示
している。
【0080】
クエリ1310によって、重要発言の発生を抽出する一方、発言の内容は、ストリーム
1505(statement)としてPC10から入力される。発言内容は議事録係の
キーストロークから抽出されるため、音声解析と加速度解析から自動抽出した重要発言の
発生タイミングに対し、数十秒遅れて入力されることになる。これに対し、クエリ132
0、およびクエリ1330は、ある発言者の重要発言が検出された後、最初に入力された
該発言者の発言内容に、重要発言のフラグを立てる処理である。
【0081】
クエリ1320は、発言者ごとに、発言重要度を表すフラグを保持するトグルスイッチ
の役目を果たす。該クエリの結果リレーションacceptance_toggleは、
次にストリーム1505(statement)から入力される発言内容が、重要発言と
なるか否かを、発言者ごとに表している(例:リレーション1321)。nameカラム
は発言者名を示し、flagカラムは、’yes’/’no’によって重要性を示してい
る。クエリ1330は、ストリーム1505をNOWウィンドウでリレーション化した結
果と、クエリ1320の結果リレーションを、nameカラムに関する結合演算で処理し
、発言内容に重要性の指標を付加して出力する(例:ストリーム1331)。
【0082】
クエリ1320では、まず、ストリーム1505から発言内容の入力があった際に、そ
の発言者に関する重要度のフラグを’no’にクリアするタプルを生成する。但し、該タ
プルのタイムスタンプは、元となる発言内容タプルのタイムスタンプから、若干時刻を遅
らせる。この処理を、“DSTREAM(statament[RANGE 1 mse
c])”の記述によって定義している。例として、statementストリーム130
3上のストリームタプル1304が入力されると、そこから1 msec分タイムスタン
プのずれたストリームタプル1324が、中間状態ストリーム1322上に発生する。こ
のような’no’タプルのストリームと、クエリ1310の結果を、和集合演算“UNI
ON ALL”でマージする。例として、該ストリーム1322と、ストリーム1311
のマージ結果が、ストリーム1323となる。このストリームを、ウィンドウ演算“PA
RTITION BY name ROWS 1]”でリレーション化する。このウィン
ドウ演算は、nameカラムの値に基づいて分けた各グループを、同時生存数1個の個数
ウィンドウでリレーション化する。これにより、各発言者別に、重要度’yes’か’n
o’どちらか一方のフラグが立つことになる。例として、ストリーム1323をリレーシ
ョン化した結果が、リレーション1321となる。ここで、’no’タプルのタイムスタ
ンプを若干ずらす理由は、クエリ1330において、’no’タプルと、その元となるs
tatementタプル自身が、結合するのを避けるためである。以上で、アクティビテ
ィデータ生成100Cの処理が完了する。
【0083】
続いて、アクティビティデータ生成100Cによって得られたアクティビティデータに
基づいて、表示処理部203、即ち集計処理サーバ200の処理部(CPU)で実行され
る描画処理プログラムによって得られる画面イメージを図16、17を用いて説明する。
【0084】
図16は、発言者の動きに基づいたアクティビティデータ1520を、動きの活性度3
11Mとして、活性度・発言表示310Aに反映した画面イメージである。本画面により
、会議内での活動について、単なる音声だけではなくメンバの行動面を併せて可視化する
ことができる。
【0085】
また、図17は、うなずきによる発言の重要度を示すアクティビティデータ1521を
、重要発言指標311aとして、活性度・発言表示310Bに反映した画面イメージであ
る。メンバの発言313と重要発言指標311aとをリンクさせて表示することにより、
どの発言が参加メンバの納得感を得たものなのかを可視化することができる。このように
、本画面により、単なる音声だけではなく、メンバの納得度を併せて会議状況を可視化す
ることができる。
【0086】
さて図14は、図2で示した機能モジュールでの処理シーケンスの別の実施例を示した
ものである。本実施例における処理シーケンスでは、音声処理部42において、特徴量デ
ータを取得した後、音声処理サーバ40において、音声/非音声判別処理、スムージング
処理、及び音源選択処理を実行する。好適には、これらの処理も、音声処理サーバ40の
図示されない処理部(CPU)のプログラム処理として実行される。
【0087】
図14において、図2同様、センサ(マイク)20では音声データが取得される(20
A)。次に、サウンドボード41にて、音声のサンプリング処理が行なわれる(41A)
。次に音声処理部42にて、特徴量の抽出(エネルギーへの変換)が行なわれる(42A
)。エネルギーは数ミリ秒の音波形の絶対値の2乗を全範囲に渡って積分したものである

【0088】
本実施例においては、音声処理サーバ40の音声処理42として、特徴量抽出(42A
)から取得した特徴量データをもとに、音声/非音声の識別を行なう(42B)。音声/
非音声の識別方法として、数秒時間におけるエネルギーの変化度合いによる識別があげら
れる。音声には特有の音波形エネルギーの強弱とその変化パターンがあり、それらを用い
ることで音声と非音声の識別を行なう。
【0089】
また、数秒単位の音声/非音声識別結果をそのまま用いると、数10秒からなる意味の
かたまりとしての1発話単位の区間を求めることが難しい。そこで、スムージング処理(
42C)を導入することにより、1発話単位の区間を求め,これを音源選択に使用する。
【0090】
上述の部分は音声処理42で、センサ(マイク)20毎に行なう処理であり、最終的に
どのセンサ(マイク)20から音声が入力されたかを判断する必要がある。そこで本実施
例においては、音声処理42において、スムージング処理(42C)に引続き音源選択4
2Dを行ない、センサ(マイク)20の中から実際に発話されたセンサ(マイク)20を
選択する。一番近くのセンサ(マイク)20に届く音声は、その他のセンサ(マイク)2
0より音声と判断される区間が長い。よって、本実施例においては、それぞれのセンサ(
マイク)20のスムージング処理42Cの結果から一番長かったセンサ(マイク)20を
音源選択42Dの出力とした。次に、ストリームデータ処理部100にて、アクティビテ
ィデータ生成(100C)が行なわれ、最後に、表示処理部203にて、アクティビティ
データADに基づいた、画面データ生成(203A)が行なわれることは先に説明した通
りである。
【符号の説明】
【0091】
10…PC、20…センサ(マイク)、30…会議卓、40…音声処理サーバ、100
…ストリームデータ処理部、200…集計処理サーバ、300…モニタ画面、310…会
議活性度・発言内容表示、320…発言累積表示、330…発言シーケンス表示。

【特許請求の範囲】
【請求項1】
複数の参加者間での対話状況を分析する会議分析システムであって、
前記参加者が装着することで、前記参加者の身体の動きの大きさを加速度センサによって検出して記録する名札型センサノードと、
対話内容を手入力によって記録するためのキーストローク情報入力ユニットと、
前記身体の動きのデータと前記対話内容との対応付けを行うデータストリーム処理ユニットと、を備え、
前記データストリーム処理ユニットは、時間毎に、前記身体の動きのデータによって前記対話内容の重要性を判定する
ことを特徴とする会議分析システム。
【請求項2】
請求項1に記載の会議分析システムであって、
前記データストリーム処理ユニットは、前記身体の動きのデータより、前記参加者のうなずきの有無を推定し、推定された前記うなずきの量によって、前記対話内容の重要性を判定する
ことを特徴とする会議分析システム。
【請求項3】
請求項1に記載の会議分析システムであって、
前記参加者に対応する複数の音声データを取得する音声データ取得ユニットを更に備え、
前記データストリーム処理ユニットは、時間毎に、前記身体の動きのデータによって、前記音声データの重要性を判定する
ことを特徴とする会議分析システム。
【請求項4】
請求項3に記載の会議分析システムであって、
前記データストリーム処理ユニットは、前記身体の動きのデータより、前記参加者のうなずきの有無を推定し、推定された前記うなずきの量によって、前記音声データ、および前記対話内容の重要性を判定する
ことを特徴とする会議分析システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2013−58221(P2013−58221A)
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【出願番号】特願2012−230381(P2012−230381)
【出願日】平成24年10月18日(2012.10.18)
【分割の表示】特願2007−105004(P2007−105004)の分割
【原出願日】平成19年4月12日(2007.4.12)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】