以下、図面を参照して、本発明の実施の形態の一例について説明する。
図1は、本発明の一実施例を示すウェブ会議システムのシステム構成を例示する図である。
図1に示すように、本実施形態のウェブ会議システムは、例えば、情報処理装置などのパーソナルコンピュータを適用可能なウェブ会議サーバ100、情報処理装置101、情報処理装置102を有する。情報処理装置101は画面及び音声を共有させるホストコンピュータであり、情報処理装置102は画面及び音声を共有するゲストコンピュータである。これら100~102に示す装置は、ネットワーク通信機能を利用し、LAN500(ローカルエリアネットワーク)を介してデータ通信可能であり、ウェブ会議システムに接続することでウェブ会議へ参加可能となる。
ウェブ会議サーバ100は、ウェブブラウザを利用したウェブ会議を実現するためのサーバであり、例えば、情報処理装置などのパーソナルコンピュータを適用可能である。なお、ウェブ会議サーバ100は、公衆回線106を介してデータ通信が可能である。
情報処理装置101および情報処理装置102は、ウェブ会議サーバ100へアクセスすることにより、ウェブ会議アプリケーション画面(インタフェース)を取得してウェブ会議を行うことができる。情報処理装置101および情報処理装置102には、ウェブ会議サーバ100へアクセスするためのウェブブラウザ、及び専用のモジュールがインストールされている。なお、この専用のモジュールは、例えば、ウェブブラウザを介して、ウェブ会議サーバ100からダウンロードするActiveXコンポーネントである。
なお、情報処理装置101および情報処理装置102には、ウェブ会議において自身の動画像を送信する場合はウェブカメラ(不図示)を接続し、音声を送信する場合はマイク(不図示)を接続する。また、相手の音声を視聴するためにはスピーカー(不図示)を接続する。これらの各デバイスは、情報処理装置101および情報処理装置102上に複数台接続することが可能である。なお、本実施例のウェブ会議システムでは、各デバイスをそれぞれ1つずつ接続するものとする。
上記のウェブカメラから取得した映像、マイクから取得した音声は、それぞれ圧縮され、他の参加者の情報処理装置102に送信される。
また、ウェブ会議システムでは、情報処理装置101の画面を情報処理装置102に表示することで、情報処理装置101の画面で表示している画面の共有を行うことができる。共有される画面は、情報処理装置101で指定することが可能である。また、共有される画面は、アプリケーションの画面であったり、デスクトップ全体の画面であったりする。
画面共有を行う場合、情報処理装置101の画面は、ウェブ会議サーバ100に送信され、ウェブ会議サーバ100から情報処理装置102に送信される。
また、本実施形態においては、ホストコンピュータである情報処理装置101は、本ウェブ会議システムに1台だけ存在できる。ホストコンピュータの役割を担っていた情報処理装置101が情報処理装置102となり、ゲストコンピュータの役割を担っていた情報処理装置102が情報処理装置101としての役割を果たすことも可能である。情報処理装置102がホストコンピュータである情報処理装置101としての役割を果たす場合は、情報処理装置102の画面を本ウェブ会議システムで共有することができる。
なお、本ウェブ会議システムは、ルームと呼ばれる仮想会議室を複数設定することが可能である。このルームを複数設定することにより複数の会議を行うことが可能であるが、本実施形態では、ウェブ会議システムでは1つのルームによる会議が行われているものとして説明する。複数のルームが存在する場合には、該当する1つのルームがウェブ会議システムを意味するものとする。以上が図1の説明である。
次に図2および図3を参照して、本発明の実施形態における各種装置に適用可能なハードウェア構成の一例について説明する。
図2は、ウェブ会議サーバ100のハードウェア構成の一例を示す図である。
図2において、ウェブ会議サーバ100のCPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input/Output System)やオペレーティングシステム(以下、OS)が記憶される。また、ROM202あるいは外部メモリ211には、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
203はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、入力デバイス209からの入力を制御する。入力デバイス209としては、キーボード、タッチパネル、及びマウス等のポインティングデバイス等が挙げられる。
なお、入力デバイス209がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。
また、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
206はビデオコントローラで、ディスプレイ210等の表示機への表示を制御する。なお、ディスプレイ210は、CRT、液晶ディスプレイ等の表示機のことを指す。または、その他の表示機であってもよい。なお、ディスプレイ210は、本体と一体になったノート型パソコンのディスプレイも含まれるものとする。外部出力装置はディスプレイに限ったものではなく、例えばプロジェクタであってもよい。
また、図2のウェブ会議サーバ100が前述のタッチ操作を受け付け可能な装置である場合には、ディスプレイ210が入力デバイス209としての機能を提供する。
207はメモリコントローラで、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイルへのアクセスを制御する。また、各種データ等を記憶するハードディスク(HDD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォント展開(ラスタライズ)処理を実行することにより、ディスプレイ210上での表示を可能としている。また、CPU201は、ディスプレイ210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、ROM202あるいは外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。
さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報、テーブル等も、外部メモリ211に格納されている。
以上で、図2のウェブ会議サーバ100のハードウェア構成の説明を終了する。
図3は、情報処理装置101及び102のハードウェア構成の一例を示す図である。情報処理装置101と102は同じハードウェア構成であるため、情報処理装置101を例に以下説明する。
図3において、情報処理装置101のCPU301は、システムバス304に接続される各デバイスやコントローラを統括的に制御する。また、ROM302あるいは外部メモリ311には、CPU301の制御プログラムであるBIOS(Basic Input/Output System)やオペレーティングシステム(以下、OS)が記憶される。また、ROM302あるいは外部メモリ311には、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
303はRAMで、CPU301の主メモリ、ワークエリア等として機能する。CPU301は、処理の実行に際して必要なプログラム等をROM302あるいは外部メモリ311からRAM303にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、305は入力コントローラで、入力デバイス309からの入力を制御する。入力デバイス309としては、キーボード、タッチパネル、及びマウス等のポインティングデバイス等が挙げられる。
なお、入力デバイス309がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下(指等でタッチ)することにより、各種の指示を行うことができることとする。
また、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
306はビデオコントローラで、ディスプレイ310等の表示機への表示を制御する。なお、ディスプレイ310は、CRT、液晶ディスプレイ等の表示機のことを指す。または、その他の表示機であってもよい。なお、ディスプレイ310は、本体と一体になったノート型パソコンのディスプレイも含まれるものとする。外部出力装置はディスプレイに限ったものではなく、例えばプロジェクタであってもよい。
また、図3の情報処理装置101及び102が前述のタッチ操作を受け付け可能な装置である場合には、ディスプレイ310が入力デバイス309としての機能を提供する。
307はメモリコントローラで、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HDD)や、フレキシブルディスク(FD)へのアクセスを制御する。また、メモリコントローラ307は、PCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ311へのアクセスを制御する。
308は通信I/Fコントローラで、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU301は、例えばRAM303内の表示情報用領域へアウトラインフォント展開(ラスタライズ)処理を実行することにより、ディスプレイ310上での表示を可能としている。また、CPU301は、ディスプレイ310上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、ROM302あるいは外部メモリ311に記録されており、必要に応じてRAM303にロードされることによりCPU301によって実行されるものである。
さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報、テーブル等も、外部メモリ311に格納されており、これらについての詳細な説明も後述する。
カメラコントローラ312は、カメラ314等による映像取得を制御し、音声コントローラ313はマイク315(入力部)、スピーカー(出力部)316等による音声取得制御やスピーカー316への出力を制御する。なお、音声コントローラ313が音声を出力する先は、スピーカー316だけではなくヘッドフォンや外部のスピーカーに出力するための出力端子であってもよい。
カメラ314は、図3のハードウェア構成を適用する装置に内蔵されているカメラである。また、マイク315及びスピーカー316は、図3のハードウェア構成を適用する装置に内蔵されているマイク315及びスピーカー316である。以上が図3の説明である。
次に図4を参照して、本発明の実施形態における、各種装置の機能構成の一例について説明する。
情報処理装置101及び102は、画像記憶部411、送信制御部412、受信制御部413、合成部414等を備えている。
情報処理装置101と102は同じ機能構成であるため、ここでは情報処理装置101を例に説明を行い、情報処理装置102についての説明は省略する。
画像記憶部411は、送信制御部412によって送信する画像と同じ画像を記憶する記憶部(キュー)である。
キューには、情報処理装置101の撮像装置によって撮像される撮像画像(会議画像)用の画像キューと、ユーザ操作により指定された指定画像(情報処理装置101のデスクトップ画面の画像等)の画像キューがある。
撮像画像用の画像キューには撮像画像を順次記憶する。カメラ314は継続的に撮像処理(動画の撮像及び情報処理装置101への動画の入力)を行うため、当該画像キューには、動画を構成する複数の画像が、動画内のフレームごとに順々に記憶される。
指定画像用の画像キューには、指定画像を所定時間ごとに記憶する。例えば0.2秒ごとに、情報処理装置101のデスクトップ画面に表示されているデスクトップ画像を順次記憶する。記憶される各指定画像は、例えばデスクトップ画像を繋ぎ合わせて再生する動画の1フレームである。
送信制御部412は、各種画像や音声データを送信する機能部である(画像送信手段)。より具体的には、カメラ314において撮像され入力された画像(映像)や、ユーザ操作等により表示を共有する画像として指定された指定画像(デスクトップ全体または指定アプリケーションの画面の画像)を、ウェブ会議サーバ100に送信制御する。
送信された画像は、ウェブ会議サーバ100の受信制御部422で受信され、メモリ上の画像記憶部423(画像キュー)に格納される。
受信制御部413は、ウェブ会議サーバ100から画像及び音声を受信する機能部である。
合成部414は、情報処理装置101が、OSで管理される動画や音楽プレイヤーで再生される再生音とマイク315から取得した音声データとウェブ会議サーバ100から受信した音声データとを合成する機能部である(合成手段)。当該再生音とマイク315から取得した音声データとウェブ会議サーバ100から受信した音声データとをすべて合成してもよいし、いずれかの再生音または音声データが含まれずに合成してもよい。合成部414の機能により各種の音声データを合成して一つの音データとすることで情報処理装置101からウェブ会議サーバ100に当該音データを送信する際にデータ通信量を削減することが可能となる。なお、本実施形態では合成部414は情報処理装置101及び102で機能するが、ウェブ会議サーバ100で合成してもよい。
以上で、情報処理装置101及び情報処理装置102の機能構成の説明を終了する。
次に、ウェブ会議サーバ100の機能構成図について説明する。
ウェブ会議サーバ100は、会議情報記憶部421、受信制御部422、画像記憶部423、送信制御部424等を備えている。
会議情報記憶部421は、どのユーザが、どの会議室に入室してどのユーザと会議を行っているかを記憶する記憶部である。
受信制御部422は、情報処理装置101の送信制御部412より送信された会議画像(映像)、および指定画像、音声を受信する受信部である。
画像記憶部423は、情報処理装置101及び情報処理装置102から受信した画像及び音声を記憶する機能部である。
送信制御部424は、受信制御部422で受信した画像や指定画像、音声等を、同じ会議に参加している(例:同じ会議室に入室中の)、当該画像や音声の送信元の情報処理装置101とは別の、他の情報処理装置102に送信する制御部である。
なお、本実施形態においては、情報処理装置102がウェブ会議サーバ100に対して、画像記憶部423からの画像の取得要求を行う。当該要求に応じてウェブ会議サーバ100の送信制御部424が要求元の情報処理装置102に対して、当該要求受付時におけるキュー内の最新の画像を送信するものとする。
情報処理装置102は、要求した画像を受信した後、当該受信した画像(動画内の1フレーム)を表示画面に表示する。そして当該表示と並行して、当該動画内の次の画像をウェブ会議サーバ100に要求する。会議が終了する等、動画の表示が終了するまで、当該画像の要求と表示を繰り返す。
以上が図4のウェブ会議サーバ100の機能構成図の説明である。
図5は、本実施形態のウェブ会議システムにおける、情報処理装置101および情報処理装置102の音声共有処理の全体の流れを例示するフローチャートである。
ステップS501において、情報処理装置101のCPU301は、情報処理装置101の画面に、図6に示すようなデバイス設定画面600を表示するように制御する。
図6はデバイス設定画面600の一例を示す図である。デバイス設定画面600は、ウェブ会議システムで利用する各種デバイスを設定する画面である。デバイス設定画面600は、カメラ選択部601、スピーカー選択部602、マイク選択部603、OKボタン604を備える。カメラ選択部601、スピーカー選択部602、マイク選択部603でそれぞれのデバイスの選択を受け付け、OKボタン604の押下を受け付けるとウェブ会議システムで使用するデバイスを決定する。
ステップS502において、情報処理装置101のCPU301は、図6に示すようなデバイス設定画面600を介して、使用するカメラ314、マイク315、スピーカー316など各デバイスの設定を受け付ける。そして各デバイスの使用状態を図7に示すようなデバイス状態テーブル700に保存し、ステップS503に処理を進める。
図7は、本実施例におけるデバイス状態テーブル700の一例を示す。デバイス状態テーブル700では、カメラ314、マイク315、スピーカー316の利用有無を保持する。デバイス状態テーブル700は、デバイスの種類を示すデバイス701、デバイスを利用しているか否かを示す利用702を備える。また、利用しているデバイスがOSで既定された既定のデバイスか否かを示す既定か否か703と、情報処理装置101及び102で再生される再生音(以下、PC再生音)を他の情報処理装置102と共有しているか否かを示すPC再生音共有704を備える。
以下、図5のフローチャートの説明に戻る。
ステップS503では、情報処理装置101のCPU301は、ステップS502で設定を受け付け、選択されたスピーカー316が、情報処理装置101のOS既定のスピーカー316か否かを確認し、デバイス状態テーブル700に保存する。なお、OS既定のスピーカー316とは、情報処理装置101に接続されたスピーカー316のうち、音声を再生するソフトウェアが既定で使用するスピーカー316のことを示す。以降、PC再生音は、OS既定のスピーカー316から取得するものとして記述する。
ステップS504では、情報処理装置101のCPU301は、図6のデバイス設定画面600で選択を受け付けた各デバイスの使用を開始する。
ステップS505では、情報処理装置101のCPU301は、スピーカー316の使用有無を判定する。情報処理装置101のCPU301は、スピーカー316を使用していると判定した場合、ステップS506に処理を進める。情報処理装置101のCPU301は、スピーカー316を使用していないと判定した場合、デバイス設定の一連の処理を終了する。
ステップS506では、情報処理装置101のCPU301は、ウェブ会議サーバ100からの音声データの受信処理を開始する。
ステップS507では、情報処理装置101のCPU301は、ウェブ会議サーバ100からの音声データの受信処理を実行し、受信した音声を再生する音声再生処理を実行する。音声再生処理の詳細については、図12を用いて説明する。
図12は、本発明の実施形態における、ウェブ会議アプリケーションの音声再生処理を例示するフローチャートである。図12の処理は、図5のステップS509における、ウェブ会議サーバ100からの音声受信開始処理において開始される。
ステップS1201において、情報処理装置101のCPU301は、ウェブ会議サーバ100から音声データを受信する。ここで受信する音声データは、他の情報処理装置102のマイク315から入力された音声データである。当該音声データは、他の情報処理装置102からウェブ会議サーバ100が受信し、ウェブ会議サーバ100からさらに情報処理装置101が受信したものである。
ステップS1202において、情報処理装置101のCPU301は、ウェブ会議サーバ100から音声データを受信したか否かを判定する。音声データを受信したと判定した場合、情報処理装置101のCPU301は、S1203に処理を進める。ウェブ会議サーバ100から音声データを受信したと判定しなかったと判定した場合は、ウェブ会議サーバ100からの音声受信処理を終了する。
ステップS1203では、情報処理装置101のCPU301は、ウェブ会議サーバ100からの受信した音声データを伸長(圧縮した音声データの解凍)し、ウェブ会議アプリケーションで選択されたスピーカー316のドライバに音声データを書き込む。これにより、選択されたスピーカー316で音声データが再生される。
図5に説明を戻す。
ステップS508では、情報処理装置101のCPU301は、画面共有処理を行う。画面共有処理については、図9を用いて説明する。
図9は、本発明の実施形態における、画面共有処理を例示するフローチャートである。本実施形態では一例として、動画再生中の画面および音声を共有する場合を例示するが、画面を共有せず、動画もしくは音楽再生アプリケーションで再生する音楽を共有してもよい。
ステップS901では、情報処理装置101のCPU301は、動画再生指示を受け付ける。動画再生指示を受け付けると、情報処理装置101のCPU301は、動画再生アプリケーションを起動し、動画の映像及び音声の再生を開始する。
ステップS902では、情報処理装置101のCPU301は、情報処理装置101に表示された図8のウェブ会議アプリケーション画面800を介して、画面共有開始ボタン801の押下を受け付けるとステップS903に処理を進める。
図8のウェブ会議アプリケーション画面800は、本発明の実施形態におけるウェブ会議アプリケーション画面の一例を示す図である。ウェブ会議システムでは、ウェブ会議に参加しているユーザのうちいずれか1名(1台)がホスト(ホストコンピュータ)となる。ホストとなったユーザは自身のコンピュータ(情報処理装置101)のデスクトップ全体、または特定のアプリケーションを、他の参加ユーザ(複数台数可)をゲスト(ゲストコンピュータ)として共有表示することができる。画面共有を開始する場合、ユーザは入室後のウェブ会議アプリケーション画面800から画面共有開始ボタン801を押下する。画面共有開始ボタン801の押下を受け付けると、情報処理装置101は画面共有を開始する。
図8の画面共有操作画面810は、本発明の実施形態における、画面共有操作画面の一例を示す図である。
画面共有が開始された際、情報処理装置101のCPU301は、情報処理装置101の画面上に画面共有操作画面810を表示する。PC再生音共有ボタン811の押下を受け付けると(共有指示受付手段)、情報処理装置101のCPU301は、PC再生音の共有を開始する。PC再生音の共有開始処理については後述する。
ステップS903では、情報処理装置101のCPU301は、情報処理装置101の画面に、図8に示すような画面共有操作画面810を表示するように制御する。
ステップS904では、情報処理装置101のCPU301は、図7のデバイス状態テーブル700を参照し、マイク315を使用しているか否かを判定する。マイク315を使用していないと判定した場合、情報処理装置101のCPU301は、ステップS905に処理を進める。マイク315を使用していると判定した場合、情報処理装置101のCPU301は、ステップS906に処理を進める。
ステップS905では、情報処理装置101のCPU301は、ステップS903で表示された画面共有操作画面810のPC再生音共有ボタン811を無効化する。これは、ステップS904の判定により、マイクが使用されておらず、ウェブ会議サーバ100への音声送信処理が開始されていないためである。PC再生音の送信はウェブ会議サーバ100への音声送信処理に依存し、ウェブ会議サーバ100への音声送信処理が行われない場合にはPC再生音もウェブ会議サーバ100へ送信することが出来ない。PC再生音をウェブ会議サーバ100へ送信しなければ、PC再生音を他の情報処理装置102と共有できないため、ここでではPC再生音共有ボタン811を無効化する。
ステップS906において、情報処理装置101のCPU301は、ウェブ会議サーバ100への共有画面のデータの送信を開始し、本フローチャートの処理を終了する。情報処理装置101のCPU301は、情報処理装置101が表示している画面のスクリーンショットを撮影し、ウェブ会議サーバ100へ撮影した当該画像を送信する処理を行う。当該処理により、情報処理装置101は、自身の画面を他の情報処理装置102に共有することが可能となる。
以上で、図9の画面共有処理の説明を終了する。図9の処理により、PC再生音を共有する際の各種画面の表示が制御され、また情報処理装置101で表示される画面が他の情報処理装置102に共有される。
図5に説明を戻す。
ステップS509では、情報処理装置101のCPU301は、PC再生音を他の情報処理装置102と共有するべくPC再生音共有開始処理を実行する。PC再生音共有開始処理の詳細については、図10を用いて説明する。
図10は、本発明の実施形態における、PC再生音共有開始処理を例示するフローチャートである。
ステップS1001では、情報処理装置101のCPU301は、PC再生音共有ボタン811の押下を受け付けると、ステップS1002に処理を進める。
ステップS1002では、情報処理装置101のCPU301は、デバイス状態テーブル700を参照し、ウェブ会議で利用しているスピーカー316がOS既定のスピーカー316か否かを判定する。既定のスピーカー316を利用していると判定した場合、情報処理装置101のCPU301は、ステップS1003に処理を進める。既定のスピーカー316を利用していないと判定した場合、情報処理装置101のCPU301は、ステップS1004に処理を進める。
ステップS1003では、情報処理装置101のCPU301は、ウェブ会議サーバ100からの音声受信処理を停止する。これは、PC再生音の共有処理により、エコーが発生することを防ぐためである。エコーが発生する理由については図13で後述する。
ステップS1004において、情報処理装置101のCPU301は、図7のデバイス状態テーブル700のPC再生音共有フラグを「あり」に切り替え、処理を終了する。
以上で、図10のPC再生音共有開始処理のフローチャートの説明を終了する。図10の一連の処理により、情報処理装置101で再生されるPC再生音が、他の情報処理装置102で共有可能に再生する処理が開始される。
ステップS510では、情報処理装置101のCPU301は、マイク315の使用有無を判定する。情報処理装置101のCPU301は、マイク315を使用していると判定した場合は、ステップS511に処理を進める。情報処理装置101のCPU301は、マイク315を使用していないと判定した場合は、ステップS513に処理を進める。
ステップS511では、情報処理装置101のCPU301は、マイク315から取得した音声データのウェブ会議サーバ100への送信処理を開始する。
ステップS512では、情報処理装置101のCPU301は、情報処理装置101のCPU301は、音声送信処理を実行する。音声送信処理については、図11を用いて詳細を説明する。
図11は、本発明の実施形態における、ウェブ会議サーバ100への音声送信処理を例示するフローチャートである。本処理は、図5のステップS506のサーバへの音声送信開始処理において開始される。
ステップS1101では、情報処理装置101のCPU301は、マイク入力を停止しているか否かを判定する。マイク入力を停止していないと判定した場合、情報処理装置101のCPU301は、ステップS1102に処理を進める。マイク入力を停止していると判定した場合、情報処理装置101のCPU301は、マイク315からの入力音を取得せずステップS1103に処理を進める。
ステップS1102では、情報処理装置101のCPU301は、マイク入力音を取得する。マイク入力音とは、情報処理装置101が備えるマイク315から入力された、ユーザが発した音声等の音声データを示す。マイク入力音を取得すると、情報処理装置101のCPU301は、ステップS1103に処理を進める。
ステップS1103では、情報処理装置101のCPU301は、PC再生音を作成する。PC再生音の作成はウェブ会議アプリケーションではなく、情報処理装置101のOSが行う処理である。PC再生音がOSによってどのように作成されるかについては図13と図15を用いて説明する。
図13は、本発明の実施形態における、OSによるPC再生音作成処理を例示するフローチャートである。PC再生音とは、ホストコンピュータとなる情報処理装置101上で動作するアプリケーションからスピーカー316に書き込まれた、全ての音声データが合成された音声データである。ここでは便宜的に、OS既定のスピーカー316において、ウェブ会議アプリケーション、動画再生アプリケーション、その他のアプリケーションが音声データを再生している場合を例示する。
ステップS1301では、情報処理装置101のCPU301は、ウェブ会議アプリケーションからスピーカー316に書き込まれた音声データを取得する。ウェブ会議アプリケーションで書き込まれた音声データとは、ウェブ会議サーバ100から受信した音声データである。当該音声データにはウェブ会議サーバ100が他の情報処理装置102(ウェブ会議の参加者)から受信した音声データ(第二の音データ)が含まれる。
ステップS1302では、情報処理装置101のCPU301は、動画再生アプリケーションから動画の再生時にスピーカー316に書き込まれた音声データを取得する。
ステップS1303では、情報処理装置101のCPU301は、その他のアプリケーションから書き込まれた音声データを取得する。その他とは、動画再生アプリケーション以外のアプリケーションであり、たとえば音楽再生アプリケーションなどの音声データを再生可能なアプリケーションを示す。
ステップS1304において、情報処理装置101のCPU301は、ステップS1301からステップS1304の全ての音声データを合成し、PC再生音を作成する。つまり、同一のスピーカー316に対し、ウェブ会議アプリケーション、動画再生アプリケーション、その他のアプリケーションが音声データを再生している場合、PC再生音には当該3つの音声データが含まれる。
ここで、図15について説明する。図15のPC再生音作成処理イメージ1500は、図11の音声送信処理と図13のPC再生音作成処理の処理のイメージ図の一例を示す。PC再生音作成処理イメージ1500はすべて情報処理装置101上での処理のイメージである。PC再生音作成処理イメージ1500では、ウェブ会議アプリケーション、動画再生アプリケーション、その他のアプリケーションからそれぞれ音声データを情報処理装置101のスピーカー316のドライバに書き込む。そして当該書き込んだ音声データを合成し(点線部1501)、情報処理装置101は点線部1501のPC再生音を作成する。ここまでが、図13のステップS1301から1304までの処理のイメージとなる。
ウェブ会議アプリケーションがスピーカー316に書き込んだ音声データは、ウェブ会議サーバ100が他の情報処理装置102(ウェブ会議の参加者)から受信した音声データが含まれる。つまり、情報処理装置101で合成するPC再生音には、他の参加者が送信した情報処理装置102の音声データが含まれる。情報処理装置102からの音声データを含む合成したPC再生音を、情報処理装置101からウェブ会議サーバ100に送信すると(図15の1503)、ウェブ会議サーバ100は当該PC再生音を情報処理装置102に送信する。その結果、情報処理装置102は自身が入力した音声データをウェブ会議サーバ100から再び受信することとなる。したがって、自身が発した音声が自身に返ってくる現象(エコーと呼ばれる)が起こり、ウェブ会議の阻害要因となる課題が発生する。
上記の課題を、図10のS1003の処理を行うことで解決する。PC再生音共有ボタン811の押下を受け付けた場合には、まずウェブ会議サーバ100からの音声データの受信を停止する。図15のPC再生音作成処理イメージ1510は、ウェブ会議サーバ100からの音声データの受信を停止してPC再生音を作成しているイメ―ジ図である。音声データの受信停止により図13のステップS1301では、ウェブ会議サーバ100から書き込まれた音声を取得せず、ステップS1304では他の情報処理装置102からの音声データを含まない状態でPC再生音を作成することとなる(図15の1511)。つまり、結果的に各アプリケーションで再生した動画の音声データや音楽の音声データのみのPC再生音を作成する。当該PC再生音の作成により、情報処理装置102は自身が入力した音声データを含まないPC再生音を受信することができるため、上記の課題であるエコーの発生を抑止することが可能となる。
ただし、情報処理装置101には、スピーカー316は複数存在することが可能となるため、ウェブ会議アプリケーションが音声データを書き込むスピーカー316と、PC再生音を取得するスピーカー316が異なる場合には、上記の課題は発生しない。上記の課題が発生するのは、ウェブ会議アプリケーションが音声データを書き込むスピーカー316と、PC再生音を取得するスピーカー316が同一であった場合である。従って、図10のS1003の処理は、ウェブ会議アプリケーションが音声データを書き込むスピーカー316が、PC再生音を取得するスピーカー316、つまりOS既定のスピーカー316と同一の場合にのみ行う。そのため、図10のステップS1002で、情報処理装置101のCPU301は、OS既定のスピーカー316を利用していると判定した場合はウェブ会議サーバ100からの音声受信を停止する。一方、情報処理装置101のCPU301は、OS既定のスピーカー316を利用していないと判定した場合は、ウェブ会議アプリケーションが音声データを書き込むスピーカー316と、PC再生音を取得するスピーカー316が異なり上記課題が発生しない。図16のPC再生音作成イメージ1600は、上記課題が発生しない場合(既定のスピーカー以外のスピーカーが情報処理装置101のウェブ会議システムで設定され利用されている場合)のイメージ図である。そのため、情報処理装置101のCPU301は、ウェブ会議サーバ100からの音声受信処理を停止しない。
以上で、PC再生音作成処理の説明を終了する。
図11に説明を戻す。
ステップS1104では、情報処理装置101のCPU301は、ステップS1103で作成したPC再生音を取得する。図15の1502は、当該ステップS1104の処理のイメージ図である。
ステップS1105では、情報処理装置101のCPU301は、デバイス状態テーブル700のPC再生音共有704を参照し、PC再生音を送信するか否かを判定する。より具体的には、デバイス状態テーブル700のPC再生音共有704のフラグが「あり」となっていればPC再生音を送信する。PC再生音を送信すると判定した場合、情報処理装置101のCPU301は、ステップS1106に処理を進める。PC再生音を送信しないと判定した場合、情報処理装置101のCPU301は、ステップS1107に処理を進める。
ステップS1106において、情報処理装置101のCPU301は、マイク入力音があるか否かを判定する。マイク入力音があると判定した場合、情報処理装置101のCPU301は、ステップS1107に処理を進める。マイク入力音がないと判定した場合、情報処理装置101のCPU301は、ステップS1109に処理を進める。
ステップS1107では、情報処理装置101のCPU301は、取得したマイク入力音と、取得したPC再生音を一つの音声データとして合成し、ステップS1109に処理を進める。マイク入力音と共に合成されるPC再生音は、ウェブ会議アプリケーションから書き込まれた他の情報処理装置102の音声データと、動画再生アプリケーション、およびその他のアプリケーションから書き込まれた音声データ(第一の音データ)とを含む。PC再生音は、ウェブ会議アプリケーションから書き込まれた音声データと、動画再生アプリケーション、およびその他のアプリケーションから書き込まれた音声データとのすべて、もしくはいずれかを含めばよい。PC再生音はステップS1103で作成され、ステップS1103で作成されたPC再生音とマイク入力音とをステップS1107で合成する。この合成処理により、PC再生音の音声データの容量を小さくして情報処理装置102に対して共有することが可能となる。なお、ステップS1107でマイク入力音とPC再生音の合成を行った後の音声データは、音割れを防ぐために音量を調整するとよい。
ステップS1108において、情報処理装置101のCPU301は、マイク入力音があるか否かを判定する。マイク入力音があると判定した場合、情報処理装置101のCPU301は、ステップS1109に処理を進める。マイク入力音がないと判定した場合、情報処理装置101のCPU301は、図11のフローチャートの一連の処理を終了する。
ステップS1109において、情報処理装置101のCPU301は、音声データの圧縮を行い、ステップS1110に処理を進める。ここで圧縮される音声データは、ステップS1108でマイク入力音があると判定された場合は、マイク入力音のみ圧縮する。ステップS1107でマイク入力音とPC再生音を合成した場合は、マイク入力音とPC再生音を合成した音声データを圧縮する。ステップS1106でマイク入力音が無いと判定された場合は、PC再生音のみ圧縮する。つまり、ステップS1109で圧縮される音声データのパターンとしては、PC再生音のみ、マイク入力音のみ、PC再生音とマイク入力音を合成した音声データの3パターン存在する。
ステップS1110において、情報処理装置101のCPU301は、圧縮した音声データをウェブ会議サーバ100に送信し、一連の処理を終了する。
以上により、図11のウェブ会議サーバ100への音声送信処理を例示するフローチャートの説明を終了する。図11の一連の処理により、情報処理装置101から、同じウェブ会議に参加している他の情報処理装置102に対してPC再生音のみ、マイク入力音のみ、PC再生音とマイク入力音を合成した音声データ、の3パターンの音声データを共有することが可能となる。なお、当該3パターンの音声データには限らず、他のパターンの組み合わせの音声データを情報処理装置102に共有してもよい。
図13のステップS1301で取得する音声データは、図12のステップS1203でスピーカー316のドライバに書き込まれた音声データである。なお、情報処理装置101のCPU301は、図10のステップS1003でサーバからの音声受信処理を停止していた場合はステップS1201からステップS1203の処理を実行しない。
図5に説明を戻す。
ステップS513では、情報処理装置101のCPU301は、PC再生音の共有停止指示を受け付けたか否かを判定する。より具体的には、図8の画面共有操作画面810にPC再生音共有停止ボタン(不図示)を表示させ、そのボタンの押下を受け付けることによりPC再生音の共有停止を受け付けるとよい。情報処理装置101のCPU301は、PC再生音の共有停止指示を受け付けたと判定した場合はステップS514に処理を進める。情報処理装置101のCPU301は、PC再生音の共有停止指示を受け付けていないと判定した場合はPC再生音の共有指示を受け付けるまでPC再生音の共有処理を継続する。
ステップS514では、情報処理装置101のCPU301は、PC再生音共有停止処理を実行して図5の音声共有処理の一連の処理を終了する。
次に、図14のフローチャートの一連の処理の流れについて説明する。図14は、本発明の実施形態における、PC再生音共有の停止処理を例示するフローチャートである。
ステップS1401において、情報処理装置101のCPU301は、デバイス状態テーブル700のPC再生音共有704のフラグを「なし」に切り替える。
ステップS1402において、情報処理装置101のCPU301は、ウェブ会議サーバ100からの音声受信処理を停止しているか否かを判定する。ウェブ会議サーバ100からの音声受信処理を停止していると判定した場合、情報処理装置101のCPU301は、ステップS1403に処理を進める。ウェブ会議サーバ100からの音声受信処理を停止していないと判定した場合、情報処理装置101のCPU301は、ステップS1404に処理を進める。
ステップS1403では、情報処理装置101のCPU301は、ウェブ会議サーバ100からの音声受信処理を開始する。
ステップS1404では、情報処理装置101のCPU301は、マイク入力を停止しているか否かを判定する。マイク入力を停止していると判定した場合、情報処理装置101のCPU301は、ステップS1405に処理を進める。マイク入力を停止していないと判定した場合、情報処理装置101のCPU301は、一連の処理を終了する。
ステップS1405では、情報処理装置101のCPU301は、マイク入力を開始し、一連の処理を終了する。
以上で、図14のPC再生音共有の停止処理を終了する。この処理により、情報処理装置101と他の情報処理装置102とのPC再生音の共有は終了し、通常のウェブ会議の音声データの送受信に処理を戻す。以上の本発明の実施形態の処理により、情報処理装置101は、動画や音楽など情報処理装置101で再生した音声を、物理的なマイク調整を等の手間を低減しつつ適切に他のウェブ会議参加者(情報処理装置102)に送信することが可能となる。さらに、音声を合成して他の情報処理装置102に送信することで、通信量やデータ容量を低減する効果も奏する。また、PC再生音の共有中に他のウェブ会議参加者の声がエコーとして戻らないように制御することも可能となる。
このように、本発明によれば、ウェブ会議システムにおいて、情報処理装置の再生デバイスで再生される音声データを、会議の参加者に適切に共有させることが可能な効果を奏する。
本発明の実施形態においては、情報処理装置101と他の情報処理装置102を一例に説明を行ったが、ウェブ会議に参加するホストコンピュータ(情報処理装置101)以外のゲストコンピュータは、複数存在してよい。
なお、上述した実施形態においてはウェブ会議を例にあげて本発明の説明をしたが、本発明は例えばテレビ会議、テレビ電話等にも適用可能である。ウェブ会議、テレビ会議、テレビ電話等の電子データを用いた会議を電子会議という。
以上、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明におけるプログラムは、本実施形態に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体はコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは各装置の処理方法ごとのプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適用できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。