JP2015106794A - 音データ通信プログラム、端末装置および音データ通信方法 - Google Patents
音データ通信プログラム、端末装置および音データ通信方法 Download PDFInfo
- Publication number
- JP2015106794A JP2015106794A JP2013247617A JP2013247617A JP2015106794A JP 2015106794 A JP2015106794 A JP 2015106794A JP 2013247617 A JP2013247617 A JP 2013247617A JP 2013247617 A JP2013247617 A JP 2013247617A JP 2015106794 A JP2015106794 A JP 2015106794A
- Authority
- JP
- Japan
- Prior art keywords
- sound data
- time
- cpu
- data
- amount
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1083—In-session procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/148—Migration or transfer of sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Abstract
【課題】ネットワークを介して送受信する音データのエンコード条件を変更することなく再生する音声の欠落を防ぐことができる音データ通信プログラム、端末装置および音データ通信方法を提供する。【解決手段】会議端末のCPUは、マイクから収音した音声の音データをエンコーダで1単位時間ごとに区切って圧縮した圧縮音データを送信バッファに記憶する。CPUは結合時間分の圧縮音データを結合して他の会議端末に送信する。ネットワークの帯域幅が狭くなり、送信バッファのデータ量が1単位時間より大きくなった場合、CPUは結合時間を1単位時間分増加して送信回数を減らし、ヘッダのデータ量を削減することで必要な帯域幅を減らしてパケットロスを防止する。送信バッファのデータ量が1単位時間以下の場合、結合時間を1単位時間分減少して送信回数を増やし、音声再生の遅延を防止する。【選択図】図3
Description
本発明は、ネットワークを介して音データを通信することができる音データ通信プログラム、端末装置および音データ通信方法に関する。
従来、ネットワークを介してパーソナルコンピュータ(PC)等、複数の端末装置を接続し、音データの送受信を相互に行って音声による会議を行うシステムが知られている。例えば特許文献1が開示する音声データ送受信システムでは、発信側の端末装置は、集音した音声を逐次エンコードした音声データパケットを所定の一定間隔(20ms)で通信回線に送出する。受信側の端末装置は、受信した音声データパケットを逐次格納する受信側メモリから所定の一定間隔で取り出し、デコードして音声を再生する。
また、特許文献2が開示する通信システムでは、クライアント装置は、サーバ装置からストリーミング・メディアを受信する通信回線の帯域幅を監視し、帯域幅が変化した場合、ストリーミング・メディアの送信ビットレートを適応させる要求をサーバ装置に送信する。サーバ装置は、要求に従って送信ビットレートを適応させたストリーミング・メディアをクライアント装置に送信する。
しかしながら、特許文献1では、通信回線にジッタが生じたり帯域幅が変動した場合、受信側の端末装置は、音声データパケットの受信においてタイムアウトする場合がある。この場合に発信側の端末装置は、タイムアウトした音声データパケットの再送処理を行う。受信側の端末装置は、音声データパケットを所定の一定間隔でデコードして音声を再生するため、音声データパケットの受信において生じた遅延が積み重なって大きくなると、遅延解消のため再生する音声に欠落を生ずる可能性があった。
また、特許文献2では、送信ビットレートの変更によって遅延の蓄積が防止されるので、音声の欠落は生じにくくなる。しかし、クライアント装置がサーバ装置から受信するストリーミング・メディアに含まれる音声の音質は、本来の音質とは異なる音質になってしまう可能性があった。さらに、サーバ装置は、送信ビットレートを下げるため、ストリーミング・メディアに含まれる画像のいくつかのフレームをスキップして送信する処理を行い、コンテンツそのものを変更してしまう場合もあった。加えて、サーバ装置は、送信ビットレートを変更する場合にストリーミング・メディアのエンコード条件を変更するためエンコーダを初期化しなければならず、初期化に時間がかかってストリーミング・メディアの送信に遅延を生ずる可能性があった。
本発明は、ネットワークを介して送受信する音データのエンコード条件を変更することなく再生する音声の欠落を防ぐことができる音データ通信プログラム、端末装置および音データ通信方法を提供することを目的とする。
本発明の第一態様によれば、ネットワークを介して接続し、各種データの送受信を相互に行うことで遠隔会議を実行可能な複数の端末装置のうちの1の端末装置のコンピュータが実行可能なプログラムであって、前記1の端末装置のコンピュータに、前記1の端末装置に接続されたマイクを介して取得された音データを、予め設定された圧縮パラメータに従って圧縮し、圧縮音データを生成する生成ステップと、前記生成ステップにおいて生成された前記圧縮音データを生成順に、前記1の端末装置が備える記憶装置に記憶する記憶ステップと、前記記憶装置に記憶されている前記圧縮音データのデータ量を表す第一記憶量を取得する取得ステップと、前記取得ステップにおいて取得された前記第一記憶量に基づく値である記憶値が、所定のしきい値より大きいか否かを判断する判断ステップと、前記判断ステップにおける判断の結果、前記記憶値が前記しきい値より大きい場合、前記圧縮音データを結合する時間を指定する結合時間を第一結合時間に設定し、前記記憶値が前記しきい値以下である場合、前記結合時間を前記第一結合時間より短い第二結合時間に設定する設定ステップと、前記記憶ステップにおいて前記記憶装置に記憶された前記圧縮音データを、前記設定ステップにおいて設定された前記結合時間に応じた時間数分、逐次取り出して結合し、結合音データを生成する結合ステップと、前記結合ステップにおいて生成された前記結合音データを、他の端末装置に対して送信する指示を行う送信指示ステップとを実行させることを特徴とする音データ通信プログラムが提供される。
ネットワークにジッタが生じたり帯域幅が狭くなったりすると、1の端末装置は、他の端末装置に送信する1つの結合音データを送信し終えるまでに時間がかかるようになる。このため、記憶装置に記憶される圧縮音データのデータ量が増える。1の端末装置は、音データ通信プログラムの実行に従って、記憶装置のデータ量に応じて圧縮音データの結合時間を変更することで、一度に送信する結合音データのデータ量を調整することができる。記憶装置のデータ量がしきい値より大きい場合、記憶装置は、記憶する圧縮音データのデータ量が増えている状態である。この場合に1の端末装置は、圧縮音データの結合時間を第一結合時間に延ばすことで、結合音データの送信回数を減らすことができる。これにより、1の端末装置は、送信回数を減らした分、個々の結合音データの送信に必要な送信ヘッダを削減することができるので、音データのエンコード条件を変更することなくパケット欠落を防いで、結合音データを他の端末装置に送信でき、記憶装置のデータ量を減らすことができる。
また、記憶装置のデータ量がしきい値以下である場合、1の端末装置は、データ送信に必要な帯域幅をネットワークに確保できている状態である。この場合に1の端末装置は、圧縮音データの結合時間を第二結合時間に減らすことで、結合音データの送信回数を増やすことができる。これにより、他の端末装置は、音データを、より小さな時間単位で得ることができるので、1の端末装置における音データの入力と、他の端末装置における音データの出力との関係において、歪みが小さく円滑なリニア性を確保することができる。また、一回に送受信される音データの時間単位が小さいほど、1の端末装置における圧縮音データの結合にかかる時間、結合音データの送受信にかかる時間、他の端末装置における結合音データのデコードから出力にかかる時間等は、短い。ゆえに、端末装置は、1の端末装置における音データの入力タイミングと、他の端末装置における音データの出力タイミングとの間に生ずる遅延時間を削減することができる。
第一態様に係る音データ通信プログラムは、前記取得ステップにおいて取得された前記第一記憶量と、前記取得ステップにおいて前記第一記憶量よりも後に取得された第二記憶量との差に基づく変化量を、前記記憶値として演算する演算ステップをさらに実行させてもよい。
1の端末装置は、ネットワークにおいてジッタが発生したり帯域幅の変更が生じたりした場合に影響を受ける記憶装置のデータ量の変化に応じ、結合時間を第一結合時間または第二結合時間に設定することができる。すなわち1の端末装置は、ジッタが発生したり帯域幅が狭くなったりして記憶装置のデータ量が増加した場合、結合時間を延ばすことで送信に必要な帯域幅を減らす。送信に必要な帯域幅の減少によって送信が円滑に行えるようになるため、記憶装置のデータ量を減らすことができる。また、データ量が減少すれば、送信に必要な帯域幅が確保されているので、1の端末装置は、結合時間を短くして他の端末装置に送信する音データの入出力の関係におけるリニア性を確保することができる。
第一態様において、前記設定ステップは、前記演算ステップにおいて演算される前記第一変化量の絶対値よりも、前記結合時間に応じて送信回数が変化することによって前記結合音データのそれぞれに付加される送信ヘッダのデータ量における変化の総量である第二変化量の絶対値が大きく、且つ、前記第一変化量と前記第二変化量との差分の絶対値が最小となる値に前記結合時間を設定してもよい。
記憶装置のデータ量が変化した場合、第一変化量よりも送信ヘッダのデータ量の第二変化量が大きくなり、且つ第一変化量と第二変化量との差分が最小となるように結合時間を設定することで、1の端末装置は記憶装置のデータ量を略一定に維持することができる。すなわち、1の端末装置は、ネットワークにおいてジッタが発生したり帯域幅の変更が生じたりしても、他の端末装置への結合音データの送信を安定して行うことができる。
第一態様に係る音データ通信プログラムは、前記複数の端末装置が接続され、前記1の端末装置が前記他の端末装置に送信する前記結合音データを中継する中継サーバに、前記中継サーバの記憶装置に記憶される前記1の端末装置から送信された前記結合音データの結合が解除された前記圧縮音データのデータ量を表す第三記憶量を問い合わせる要求信号を送信する送信ステップと、前記要求信号の送信に応じて、前記第三記憶量を通知する回答信号を前記中継サーバから受信する受信ステップとをさらに実行させてもよい。この場合に、前記記憶値は、前記第一記憶量と前記第三記憶量との合計量に基づく値であってもよい。
ネットワークにおいてジッタが発生したり帯域幅の変更が生じたりした場合、中継サーバの記憶装置に記憶する圧縮音データのデータ量も、変化を生ずる。ゆえに、1の端末装置は、第一記憶量と第三記憶量の合計量の変化に応じて結合時間を設定することで、他の端末装置への結合音データの送信を安定して行うことができる。
本発明の第二態様によれば、ネットワークを介して接続し、各種データの送受信を相互に行うことで遠隔会議を実行可能な複数の端末装置のうちの1の端末装置のコンピュータが実行可能なプログラムであって、前記1の端末装置に接続されたマイクを介して取得された音データを、予め設定された圧縮パラメータに従って圧縮し、且つ、前記音データを結合する時間を指定する結合時間に応じた時間数分、前記音データを結合して、圧縮済みの結合音データを生成する結合ステップと、前記結合ステップにおいて生成された前記結合音データを、前記1の端末装置が備える記憶装置に記憶する記憶ステップと、前記記憶ステップにおいて前記記憶装置に記憶された前記結合音データを、他の端末装置に対して送信する指示を行う送信指示ステップと、前記記憶装置に記憶されている前記結合音データのデータ量を表す第一記憶量を取得する取得ステップと、前記取得ステップにおいて取得された前記第一記憶量に基づく値である記憶値が、所定のしきい値より大きいか否かを判断する判断ステップと、前記判断ステップにおける判断の結果、前記記憶値が前記しきい値より大きい場合、前記結合時間を第一結合時間に設定し、前記記憶値が前記しきい値以下である場合、前記結合時間を前記第一結合時間より短い第二結合時間に設定する設定ステップとを実行させることを特徴とする音データ通信プログラムが提供される。
第二態様に係る音データ通信プログラムを実行する1の端末装置は、結合ステップにおいて、音データを圧縮しながら、結合時間に基づくデータ長の結合音データを生成する。これにより、1の端末装置は、音データの圧縮処理から結合音データの生成処理を一つの処理で行うことができるので、音データの送信のための加工にかかる時間を減らし、1の端末装置における音データの入力タイミングと、他の端末装置における音データの出力タイミングとの間に生ずる遅延時間を削減することができる。
本発明の第三態様によれば、ネットワークを介して接続し、各種データの送受信を相互に行うことで遠隔会議を実行可能な複数の端末装置のうちの1の端末装置であって、前記1の端末装置に接続されたマイクを介して取得された音データを、予め設定された圧縮パラメータに従って圧縮し、圧縮音データを生成する生成手段と、前記生成手段が生成した前記圧縮音データを生成順に記憶する記憶装置と、前記記憶装置が記憶する前記圧縮音データのデータ量を表す第一記憶量を取得する取得手段と、前記取得手段が取得した前記第一記憶量に基づく値である記憶値が、所定のしきい値より大きいか否かを判断する判断手段と、前記判断手段の判断結果に基づいて、前記記憶値が前記しきい値より大きい場合、前記圧縮音データを結合する時間を指定する結合時間を第一結合時間に設定し、前記記憶値が前記しきい値以下である場合、前記結合時間を前記第一結合時間より短い第二結合時間に設定する設定手段と、前記記憶装置が記憶する前記圧縮音データを、前記設定手段が設定した前記結合時間に応じた時間数分、逐次取り出して結合し、結合音データを生成する結合手段と、前記結合手段が生成した前記結合音データを、他の端末装置に対して送信する指示を行う送信指示手段とを備えた端末装置が提供される。第三態様に係る端末装置が他の端末装置に結合音データを送信することで、第一態様と同様の効果を得ることができる。
本発明の第四態様によれば、ネットワークを介して接続し、各種データの送受信を相互に行うことで遠隔会議を実行可能な複数の端末装置のうちの1の端末装置のコンピュータが実行可能な音データ通信方法であって、前記1の端末装置に接続されたマイクを介して取得された音データを、予め設定された圧縮パラメータに従って圧縮し、圧縮音データを生成する生成ステップと、前記生成ステップにおいて生成された前記圧縮音データを生成順に、前記1の端末装置が備える記憶装置に記憶する記憶ステップと、前記記憶装置に記憶されている前記圧縮音データのデータ量を表す第一記憶量を取得する取得ステップと、前記取得ステップにおいて取得された前記第一記憶量に基づく値である記憶値が、所定のしきい値より大きいか否かを判断する判断ステップと、前記判断ステップにおける判断の結果、前記記憶値が前記しきい値より大きい場合、前記圧縮音データを結合する時間を指定する結合時間を第一結合時間に設定し、前記記憶値が前記しきい値以下である場合、前記結合時間を前記第一結合時間より短い第二結合時間に設定する設定ステップと、前記記憶ステップにおいて前記記憶装置に記憶された前記圧縮音データを、前記設定ステップにおいて設定された前記結合時間に応じた時間数分、逐次取り出して結合し、結合音データを生成する結合ステップと、前記結合ステップにおいて生成された前記結合音データを、他の端末装置に対して送信する指示を行う送信指示ステップとを含むことを特徴とする音データ通信方法が提供される。第四態様に係る音データ通信方法に従って1の端末装置のコンピュータが他の端末装置に結合音データを送信することで、第一態様と同様の効果を得ることができる。
以下、本発明の第一実施形態について、図面を参照して説明する。参照する図面は、本発明が採用し得る技術的特徴を説明するために用いられるものである。図面に記載されている装置の構成、各種処理のフローチャート等は、それのみに限定する趣旨ではなく、単なる説明例である。
図1を参照し、第一実施形態に係る会議端末3を含む会議システム100について説明する。会議端末3は、本発明に係る「端末装置」の一例である。会議システム100は、会議サーバ1が仮想的に構築する会議室に複数の会議端末3がネットワーク8を介してそれぞれ仮想的に参加し、画像および音声を用いた遠隔会議(テレビ会議)を開催できるシステムである。会議サーバ1、複数の会議端末3、および複数の中継サーバ6は、ネットワーク8を介して互いに接続し、会議システム100を構成する。会議端末3は、遠隔会議に参加するユーザが使用する。会議サーバ1は、複数の会議端末3の間で実行される遠隔会議を制御する。中継サーバ6は、会議端末3間で送受信される画像および音声のデータを中継する。
図1に示す会議システム100は、一例として、1つの会議サーバ1と、2つの会議端末3と、2つの中継サーバ6とがそれぞれネットワーク8に接続して構成するシステムである。会議サーバ1は、ネットワーク8を介して接続する複数の会議端末3のユーザ同士が画像および音声を用いた遠隔会議を行うための会議室を仮想的に構築し、各ユーザの入退室を管理するサーバである。会議サーバ1は、公知の構成のワークステーションやパーソナルコンピュータ(PC)を用いて構築される。会議サーバ1はデータベースを構築する記憶装置2に接続する。記憶装置2は、会議サーバ1が仮想的に構築する遠隔会議の会議室に関する各種設定情報、ユーザが参加する会議室のID情報、各会議端末3および中継サーバ6のネットワークアドレスおよびデータ送受信における経路情報等を関連づけて記憶する。また、会議サーバ1は、遠隔会議に参加する個々の会議端末3に対し、固有のID情報を発行する。記憶装置2は、会議端末3固有のID情報も他の情報と関連づけてデータベースに記憶する。また、中継サーバ6の運用において送信バッファを利用したデータ転送が行われる場合、中継サーバ6のCPU61は、後述する中継プログラムの実行においてRAM63に送信バッファの記憶領域を確保する。記憶装置2は、中継サーバ6における送信バッファの有無を示す情報をデータベースに記憶する。さらに、記憶装置2は、ユーザが遠隔会議で使用する文書や動画などの資料データ等を記憶する。
会議端末3は、モニタ41、マイク43、カメラ44、スピーカ45等が接続される端末装置である。会議端末3として、例えばPCが用いられる。複数の会議端末3のうちの1つの会議端末3(以下、「1の会議端末3」ともいう。)は、遠隔会議時に、カメラ44が撮像する自拠点の画像データと、マイク43が収音する自拠点の音データを、中継サーバ6を介して、遠隔会議に参加する他の会議端末3に送信する。また、1の会議端末3は、他の会議端末3から中継サーバ6を介して受信する画像データに基づく画像をモニタ41に表示し、他の会議端末3から受信する音データに基づく音声をスピーカ45から出力する。その結果、会議システム100は、複数拠点の画像データおよび音データを会議端末3間で共有する。会議システム100は、遠隔会議の参加者(会議端末3のユーザ)のすべてが同一拠点にいなくとも、参加者同士による円滑な会議の場を提供することができる。なお、会議システム100における遠隔会議の制御については従来と同様であるため、詳細な説明を省略する。また、第一実施形態では、会議端末3間で送受信される画像データおよび音データのうち、音データの送受信における制御について説明を行い、画像データの送受信の制御については、説明を省略する。
会議サーバ1の電気的構成について説明する。会議サーバ1は、上記したように、公知の構成のPCやワークステーションを用いて構築され、会議サーバ1の制御を司るCPU11を備える。CPU11はチップセット15に接続し、チップセット15を介してROM12、RAM13、および表示制御部14と電気的に接続する。チップセット15はチップセット16と接続する。CPU11は、チップセット16を介し、入力部22、ハードディスクドライブ(HDD)17、外部接続インターフェイス(I/F)19、および通信I/F18と電気的に接続する。
チップセット15は、CPU11と、ROM12、RAM13、および表示制御部14との間でデータの送受信を管理する一連の回路群である。ROM12は、ブートプログラム、BIOS等を記憶する。RAM13は、種々の一時データを記憶する。表示制御部14は、モニタ21への画像の表示を制御する。チップセット16は、CPU11と、入力部22、HDD17、外部接続I/F19、および通信I/F18との間でデータの送受信を管理する一連の回路群である。入力部22は、キーボード、マウス等、会議サーバ1に対する操作の入力を行う装置である。HDD17は、基本ソフト(Operating System, OS)、会議サーバ1をサーバとして機能させるためのソフトウェア(後述する会議管理プログラム)、その他各種アプリケーション、データ等を記憶する。外部接続I/F19は、上記のデータベースを構築する記憶装置2に接続するインターフェイスである。通信I/F18は、有線または無線によってネットワーク8に接続し、データ通信を行うためのインターフェイスである。
会議端末3の電気的構成について説明する。会議端末3は、公知の構成のPCであり、会議端末3の制御を司るCPU31を備える。CPU31はチップセット35に接続し、チップセット35を介してROM32、RAM33、および表示制御部34と電気的に接続する。チップセット35はチップセット36と接続する。CPU31は、チップセット36を介し、入力部42、HDD37、通信I/F38、USB I/F39と電気的に接続する。
チップセット35は、CPU31と、ROM32、RAM33、および表示制御部34との間でデータの送受信を管理する一連の回路群である。ROM32は、ブートプログラム、BIOS等を記憶する。RAM33は、種々の一時データを記憶する。RAM33は、マイク43(後述)が音声を収音し、サンプリングして出力する音データを、一時的に記憶するサウンドバッファと、D/A変換によってスピーカ45(後述)から音声を出力するための音データを一時的に記憶する再生バッファとを備える。 サウンドバッファおよび再生バッファの記憶領域は、CPU31がOSに従ってRAM33に確保する。また、RAM33は、後述する音データ通信プログラムの実行に従ってCPU31が確保する記憶領域であり、後述する圧縮音データを一時的に記憶する送信バッファを備える。
表示制御部34は、モニタ41への画像の表示を制御する。チップセット36は、CPU31と、入力部42、HDD37、および通信I/F38との間でデータの送受信を管理する一連の回路群である。入力部42は、キーボード、マウス等、会議端末3に対する操作の入力を行う装置である。HDD37は、OS、会議端末3をクライアントとして機能させるためのソフトウェア(後述する音データ通信プログラム)、その他各種アプリケーション、データ等を記憶する。通信I/F38は、有線または無線によってネットワーク8に接続し、データ通信を行うためのインターフェイスである。
なお、後述する音データ通信プログラムは、会議端末3に応じたコードにコンパイルされ、ファイルサーバ(図示略)、会議サーバ1等に設けられたコンピュータが読み取り可能な記憶装置に記憶されている。音データ通信プログラムは、ファイルサーバ、会議サーバ1等から各会議端末3にネットワーク8等の電気通信回線を通じて一時的な伝送信号として送信されて提供される。あるいは、音データ通信プログラムは、CD−ROM、DVDーROM、フラッシュROM等の記録媒体(図示略)に記憶され、会議端末3のCPU31が、会議端末3に接続可能な読取装置(図示略)で記録媒体から読み取ることで提供されてもよい。CPU31は、会議端末3が備えるコンピュータで読み取り可能な記憶装置に、音データ通信プログラムを保存する。第一実施形態における記憶装置はHDD37であるが、HDD37に限らず、例えば、SSD(Solid State Drive、図示略)、フラッシュROM等、データを記憶する時間の長さに関わらずにデータを保持できる不揮発性の記憶装置を用いることが好ましい。会議サーバ1のCPU11が実行する会議管理プログラム、中継サーバ6のCPU61が実行する中継プログラムも同様である。
USB I/F39は、USB規格に基づく通信を行うためのインターフェイスである。CPU31は、USB I/F39を介し、マイク43、カメラ44、およびスピーカ45と電気的に接続する。マイク43は、会議端末3の周囲の音声を収音してA/D変換(サンプリング)し、USB I/F39を介してCPU31に音データを送信する。CPU31は、RAM33に設けたサウンドバッファにサンプリングした音データを記憶する。カメラ44は、会議端末3の周囲の景色を撮像してA/D変換し、USB I/F39を介してCPU31に画像データを送信する。スピーカ45は、USB I/F39を介してCPU31から受信する音データをD/A変換した音声を出力する。CPU31は、RAM33に設けた再生バッファに、スピーカ45から音声を出力するための音データを記憶する。
中継サーバ6の電気的構成について説明する。中継サーバ6は、会議サーバ1と同様に、公知の構成のPCやワークステーションを用いて構築され、中継サーバ6の制御を司るCPU61を備える。CPU61はチップセット65に接続し、チップセット65を介してROM62、RAM63、および表示制御部64と電気的に接続する。チップセット65はチップセット66と接続する。CPU61は、チップセット66を介し、入力部72、HDD67、および通信I/F68と電気的に接続する。
チップセット65は、CPU61と、ROM62、RAM63、および表示制御部64との間でデータの送受信を管理する一連の回路群である。ROM62は、ブートプログラム、BIOS等を記憶する。RAM63は、種々の一時データを記憶する。表示制御部64は、モニタ71への画像の表示を制御する。チップセット66は、CPU61と、入力部72、HDD67、および通信I/F68との間でデータの送受信を管理する一連の回路群である。入力部72は、キーボード、マウス等、中継サーバ6に対する操作の入力を行う装置である。HDD67は、OS、受信したデータを転送するサーバとして中継サーバ6を機能させるためのソフトウェア(後述する中継プログラム)、その他各種アプリケーション、データ等を記憶する。通信I/F68は、有線または無線によってネットワーク8に接続し、データ通信を行うためのインターフェイスである。
図2を参照し、会議システム100で実行される遠隔会議の流れについて、会議サーバ1のCPU11が実行する会議管理プログラムの動作に沿って説明する。会議サーバ1のCPU11は、サーバ管理者が行った設定に基づき、例えば、サーバOSが立ち上がると会議管理プログラムをHDD17から読み込んで自動実行する。CPU11は、記憶装置2に構築したデータベースに接続し、遠隔会議のサーバとして会議サーバ1を機能させることを登録する(S1)。CPU11は、遠隔会議への参加を希望する会議端末3のユーザの操作に基づき、会議端末3のCPU31が送信する会議室への入室リクエストを受信するまで、処理を待機する状態に移行する(S2:NO)。
入室リクエストは、ユーザが参加を希望する会議室のID情報を含む。ネットワーク8に接続する会議端末3の1つから会議室の入室リクエストを受信した場合(S2:YES)、CPU11は、入室リクエストに含まれる会議室IDを取得する。CPU11は、取得した会議室IDと一致する会議室をまだ仮想的に作成していない場合、データベースに接続し、会議室IDに基づき、会議室設定情報を取得する(S3)。会議室設定情報は、会議室IDに基づいて作成する仮想的な会議室のデフォルト設定である。会議室設定情報は、例えば、「会議室への入室当初は音声をミュート状態にする」、「音データのデータ圧縮においてコーデックにHE−AAC v2を用い、ビットレートを48kbps(CBR)とし、サンプリングレートを24kHzとする」等の設定である。
CPU11は、遠隔会議を実行する仮想スペースである会議室を、RAM13上に仮想的に作成する(S5)。CPU11は、作成した会議室の識別情報として入室リクエストに含まれる会議室IDを設定し、会議室設定情報に基づく会議室のデフォルト設定を行う。CPU11は、入室リクエストを送信した会議端末3に対し、固有のID情報を発行する。CPU11は、会議端末3の情報(ネットワークアドレス、会議サーバ1に接続するネットワーク8上の経路情報、固有のID情報等)をデータベースに登録する。CPU11は、会議端末3に会議室のデフォルト設定の情報と固有のID情報を送信して遠隔会議に参加させ、会議端末3のユーザを仮想的に会議室に入室させる。
CPU11は、遠隔会議に参加する会議端末3から退室リクエストを受信せず(S6:NO)、遠隔会議に未参加の会議端末3から入室リクエストを受信せず(S8:NO)、遠隔会議の終了リクエストを受信しなければ(S12:NO)、処理をS6に戻して待機状態に移行する。CPU11は、遠隔会議に未参加の会議端末3から入室リクエストを受信した場合(S8:YES)、上記同様、その会議端末3の情報をデータベースに登録し、会議室のデフォルト設定の情報と固有のID情報を送信して遠隔会議に参加させる(S10)。
CPU11は、既に遠隔会議に参加する会議端末3に対し、新たに参加する会議端末3の情報を送信する(S11)。CPU11は、仮想的な会議室において、新たに遠隔会議に参加するユーザを会議室に入室させ、既に入室済みの他のユーザに対し、新たなユーザの入室に関する通知を送信する。この通知には、新たに参加する会議端末3に対して発行された、固有のID情報が含まれる。また、CPU11は、遠隔会議に既に参加する会議端末3と新たに参加する会議端末3とが音データを送受信する最適なネットワーク8上の経路を、データベースに記憶する各会議端末3と各中継サーバ6の経路情報に基づいて決定する。CPU11は、決定した経路情報をデータベースに登録し、各会議端末3に経路情報を送信する。CPU11は処理をS12に進め、上記同様、S6〜S12の処理を繰り返して待機する状態に移行する。
CPU11は、遠隔会議に参加する会議端末3から退室リクエストを受信した場合(S6:YES)、その会議端末3の情報をデータベースから削除する。CPU11は、遠隔会議に残る会議端末3に対し、遠隔会議から離脱する会議端末3の情報を送信する(S7)。CPU11は、仮想的な会議室において、遠隔会議から離脱するユーザを会議室から退室させ、会議室に残る他のユーザに対し、離脱するユーザの退室に関する通知を送信する。CPU11は処理をS8に進め、上記同様、S6〜S12の処理を繰り返して待機する状態に移行する。
CPU11は、すべての会議端末3が遠隔会議から離脱した場合、または、遠隔会議を主催する会議端末3(例えば、会議室の作成に関与した会議端末3)から遠隔会議の終了リクエストを受信した場合(S12:YES)、遠隔会議を終了する。CPU11は、RAM13上の仮想的な会議室を消去し、データベースから、終了する会議室に参加する会議端末3の情報を削除する。CPU11は、処理をS2に戻し、会議端末3から新たな入室リクエストを受信するまで、処理を待機する状態に移行する。以上の処理によって、会議サーバ1は、遠隔会議の会議室を仮想的に作成し、複数の会議端末3の遠隔会議への参加・離脱における制御を行う。
会議端末3のCPU31が音データ通信プログラムを実行し、遠隔会議に参加する会議端末3間で音データを送受信する場合に行う動作について説明する。まず、音データの送信の概要について説明する。第一実施形態の会議端末3のCPU31は、音データ通信プログラムに従って、遠隔会議に参加する他の会議端末3にネットワーク8を介して音データを送信する。1の会議端末3のCPU31は、マイク43で収音した音声をサンプリングして音データに変換し、コーデックで圧縮した後、ネットワーク8を介して他の会議端末3に送信する。他の会議端末3のCPU31は、受信した音データをコーデックで伸長した後でD/A変換し、スピーカ45から出力する。1回に送信する音データのデータ量を小さくするほど、1の会議端末3における圧縮音データの結合にかかる時間、結合音データの送受信にかかる時間、他の会議端末3における結合音データのデコードから出力にかかる時間等は、短い。ゆえに、1の会議端末3が収音するタイミングと、他の会議端末3が音声出力するタイミングとのずれ(遅延)が小さくなり、CPU31は、歪みが小さく円滑なリニア性の高い音声を再生することができる。第一実施形態の音データ通信プログラムにおいて、CPU31は、音データを単位時間に分割して送信する。音データの単位時間は、例えば5msである。
例えば、コーデックのパラメータ設定において固定ビットレートが設定されており、帯域幅を20kbpsに圧縮した音データ(圧縮音データ)が生成される場合を想定する。この場合、圧縮音データ1msあたりのデータ量は20bitであるので、1単位時間分、すなわち5ms分のデータ量は、100bit(12.5byte)である。ネットワーク8を介したデータの送受信において、データは、種々のヘッダ等が付加された状態、すなわち、パケット化された状態で送信される。例えば、圧縮音データの送信において、CPU31は、圧縮音データに、120byteの各種ヘッダ情報等を付加する。各種ヘッダ情報は、例えば、20byteのIPヘッダと、20byteのTCPヘッダと、32byteのプロトコルヘッダと、32byteの暗号化ヘッダである。さらに、CPU31は、混線防止のため、ID等の付加情報(16byte)を圧縮音データに付加して送信する。ゆえに、1単位時間分の圧縮音データを送信する場合、データ量は、132.5byteになる。音声の再生において遅延が生じないようにするため、CPU31は、1単位時間分の圧縮音データを5ms以内に送信完了する必要がある。従って、132.5byteの圧縮音データを5ms以内に送信するために必要な帯域幅は、132.5byte/5ms=212000bit/sec(212kbps)である。
ネットワーク8においてジッタが発生したり帯域幅が変動した場合、CPU31は、1単位時間分の圧縮音データの送信に必要な帯域幅を確保できない可能性がある。音データを1単位時間内に送信完了できない場合、CPU31は、音データのパケットを破棄する可能性がある。そこで第一実施形態では、音データ通信プログラムにおいて、CPU31は、複数単位時間分の圧縮音データを結合し、複数回分の圧縮音データの送信を1回で行う。これにより、CPU31は、ネットワーク8を介したデータ送信に必要な複数回分のヘッダ等のデータ量を、1回分のデータ量に削減することができる。上記例において、例えば、4単位時間分(20ms分)の圧縮音データを結合して送信する場合、ヘッダ等のデータ量は、1単位時間分の圧縮音データを送信する場合と同様に120byteである。一方、圧縮音データ20ms分のデータ量は50byteである。CPU31は、合計170byteを20ms以内に送信完了すればよく、必要な帯域幅は、170byte/20ms=68000bit/sec(68kbps)である。
帯域幅と送信間隔との関係を図3に示す。なお、図3にグラフにプロットされた各ドットに付記する数字は、1単位時間分の圧縮音データの結合数を表す。送信間隔は、圧縮音データの送信完了までにかかる時間として許容される時間であり、すなわち、1単位時間の結合数分の合計時間に相当する。図3によれば、帯域幅は、送信間隔が長くなるほど減少することがわかる。しかし、上記したように、音声の再生における遅延を防止するため、送信間隔は短いほどよい。後述する音データ通信プログラムの実行において、CPU31は、帯域幅を広く確保できる場合、圧縮音データの結合時間(結合数)を減らす処理を行って、遅延の防止を図る。CPU31は、帯域幅が狭くなれば、圧縮音データの結合時間(結合数)を増やす処理を行って、送信に必要な帯域幅を狭くし、パケットロスを防止する。
以下、図4〜図8を参照し、CPU31が音データ通信プログラムを実行して行う処理について説明する。会議端末3のCPU31は、入力部42に対して入力される操作に基づき、音データ通信プログラムをHDD37から読み込んで実行する。CPU31は、音データ通信プログラムの実行時の初期設定で、遠隔会議に参加する他の会議端末3のそれぞれに対応する複数の送信バッファの記憶領域をRAM33に確保する。送信バッファは、音データ通信プログラムの実行において、CPU31が他の会議端末3に送信するために生成する圧縮音データを一時的に記憶する記憶領域である。なお、新たに他の会議端末3が遠隔会議に参加した場合、CPU31は、その都度、新たに参加する会議端末3に対応する送信バッファの記憶領域をRAM33に確保する。また、CPU31は、RAM33に、結合時間を示すデータを記憶する。CPU31は、音データ通信プログラムに従い、他の会議端末3に送信する結合音データを、1または複数の圧縮音データを結合して生成する。結合時間は、単位時間分の圧縮音データを1または複数結合したトータルの再生時間を示す時間であり、1つの圧縮音データの再生時間が1つの単位時間であるので、結合数に比例する。
図4に示すように、CPU31は、ユーザが参加を希望する仮想的な会議室のIDの入力を、入力部42を介して受け付ける。例えば、遠隔会議の開催予定日時以前に、遠隔会議に参加予定の会議端末3の各電子メールアドレスを宛先として、会議サーバ1から電子メールが送信される。この電子メールは、会議端末3による遠隔会議のためのURL(Uniform Resource Locator)を含む。このURLは、例えば、仮想的な会議室のIDをクエリパラメータとして含む。このURLを選択する操作が入力部42によって受け付けられることで、CPU31は、ユーザが入力した会議室IDを取得する(S21)。CPU31は、ネットワーク8を介し、会議サーバ1との接続を試みる(S22)。CPU31は、会議サーバ1との接続が確立したら、会議サーバ1に対し、会議室IDを含む入室リクエストを送信する(S23)。CPU31は、入室リクエストに基づいて、会議サーバ1のCPU11が会議室IDに基づき作成した会議室、あるいは会議室IDが一致する既存の会議室への参加を許可する通知を会議サーバ1から受信する。また、CPU31は、会議サーバ1から、会議室のデフォルト設定、および中継サーバ6に関する情報(ネットワークアドレス、送信バッファの有無等の情報)を取得する(S25)。CPU31は、取得したデフォルト設定に基づき各種設定を行い(S26)、遠隔会議に参加して、会議サーバ1が仮想的に作成した会議室にユーザを入室させる。
CPU31は、以下に説明するS27〜S99の処理を、遠隔会議が終了するまで繰り返して実行する。S27〜S99の処理の繰り返しによって、CPU31は、遠隔会議が終了するまで、遠隔会議に参加する他の会議端末3に対して音データを送信し、他の会議端末3から受信した音データを再生する。CPU31は、会議サーバ1から、遠隔会議に参加する他の会議端末3に関する情報を受信したか否か判断する(S27)。上記したように、会議サーバ1から受信する他の会議端末3に関する情報は、会議室に新たに入室するユーザの情報、会議室から退室するユーザの情報等を含む。CPU31は、遠隔会議に参加する他の会議端末3の情報を受信していなければ(S27:NO)、処理をS30に進める。CPU31は、遠隔会議に参加する他の会議端末3の情報を受信した場合(S27:YES)、会議室への入退室に伴う参加者(各会議端末3のユーザ)の人数を更新し、RAM33に記憶する。また、遠隔会議に新たな会議端末3の参加がある場合、会議サーバ1から新たな会議端末3との経路情報を受信するので、CPU31は、受信した経路情報をRAM33に記憶する(S28)。CPU31は、処理をS30に進める。
CPU31は、マイク43が送信する音データに、例えば公知の周波数フィルタリング処理を行い、音データにユーザの発する音声(発話)が含まれるか否か判断する(S30)。音データに発話が含まれない場合(S30:NO)、CPU31は処理をS40に進める。音データに発話が含まれる場合(S30:YES)、CPU31は、RAM33のサウンドバッファから、1単位時間(5ms)分の音データを取得する(S31)。なお、CPU31は、上記の周波数フィルタリング処理に加えて、あるいは上記の周波数フィルタリング処理の代わりに、例えば、音データの音量を所定のしきい値と比較し、比較結果に基づいて、音データに発話が含まれるか否かを判断してもよい。CPU31は1単位時間分の音データを、デフォルト設定に基づくエンコード条件を設定した公知のエンコーダ(例えば、HE−AAC v2、G.711、G.729、Speex、Opus)で処理して圧縮し、1単位時間分の圧縮音データを生成する(S32)。CPU31は生成した圧縮音データを、RAM33の送信バッファに記憶し(S33)、処理をS40に進める。
CPU31は、送信処理のサブルーチンを実行する(S40)。CPU31は、音データの送信において、遠隔会議に参加する複数の会議端末3を順に送信対象に設定して行う。図5に示すように、CPU31は、送信処理において、OSに従ってデータを送信する処理を行っている最中であるか否かをOSに問い合わせることで判断する(S41)。送信中であれば(S41:YES)、送信中のデータの送信を継続するためCPU31は送信処理を終了し、音データ通信プログラムのメインルーチン(図4参照)に処理を戻し、処理をS55に進める。送信中でなければ(S41:NO)、CPU31は、送信対象の会議端末3に対応する送信バッファに、発話に基づく圧縮音データが記憶されているか否か判断する(S42)。送信バッファに圧縮音データがなければ(S42:NO)、他の会議端末3に送信する音データがないのでCPU31は送信処理を終了し、音データ通信プログラムのメインルーチン(図4参照)に処理を戻し、処理をS55に進める。
送信対象の会議端末3に対応する送信バッファに圧縮音データがある場合(S42:YES)、CPU31は、後述する結合時間更新処理で更新し、RAM33に記憶する結合時間を取得する(S43)。CPU31は、結合時間に応じた結合数分の圧縮音データを、生成時刻の古い順に送信バッファから取り出して結合し、結合音データを生成する(S45)。CPU31は、結合音データに、付加情報を付加する(S48)。付加情報は、結合時間を示す情報、会議端末3固有のID情報等である。会議端末3固有のID情報は、1の会議端末3が複数の会議端末3がそれぞれ送信した結合音データを受信した場合の混信を避けるために、付加情報として付加される。
CPU31は、付加情報を付加した結合音データを所定のアルゴリズムに従って暗号化し、暗号化ヘッダを付与する(S50)。例えば、SSL(Secure Sockets Layer)、TLS(Transport Layer Security)、SRTP(Secure Real-time Transport Protocol)等が暗号化プロトコルとして使用される。CPU31は、暗号化した結合音データに所定の通信プロトコルのヘッダを付加する(S51)。例えば、RTP(Real-time Transport Protocol)、HTTP(Hypertext Transfer Protocol)、HTTPS(HTTP over SSL/TLS)等が通信プロトコルとして使用される。
CPU31は、通信プロトコルのヘッダを付与した結合音データを、OSに従ってRAM33に確保された送信用のソケットバッファに記憶する処理を行う(S52)。CPU31は、OSに対し、結合音データの送信を指示する送信リクエストを出力する。送信用ソケットバッファに記憶される結合音データは、CPU31が、OSに従って、IP/TCPヘッダを付加し、ネットワーク8を介して他の会議端末3に送信する処理を行う(S53)。ここで、経路情報に基づき、1の会議端末3から送信対象の会議端末3に送信する経路に中継サーバ6が含まれる場合、CPU31は、IP/TCPヘッダで指定する送信先として、経路上で1の会議端末3の次に位置する中継サーバ6を設定する。CPU31は、結合音データの送信を開始したら、送信処理を終了し、音データ通信プログラムのメインルーチンに処理を戻し、処理をS55に進める。
図4に示すように、CPU31は、結合時間更新処理のサブルーチンを実行する(S55)。図6に示すように、結合時間更新処理において、CPU31は、送信対象の会議端末3との間の経路情報に基づき、経路に含まれる中継サーバ6を特定する。CPU31は、特定した中継サーバ6が送信バッファを有するか否か、会議サーバ1から取得した情報に基づいて判断する(S56)。中継サーバ6に送信バッファがある場合(S56:YES)、CPU31は、送信対象の会議端末3に対応する送信バッファに記憶する圧縮音データのデータ量を取得する(S57)。CPU31は、取得した自拠点のデータ量に取得時刻を付加し、RAM33に記憶する。さらにCPU31は、経路に含まれるすべての中継サーバ6に、送信バッファのデータ量を問い合わせるリクエストを送信する(S58)。詳細は後述するが、中継サーバ6のCPU61は、会議端末3から送信バッファのデータ量のリクエストを受信したら、RAM63の送信バッファに記憶する圧縮音データのデータ量を取得する。CPU61は、取得したデータ量を通知するレスポンスを、リクエスト送信元の会議端末3に送信する。会議端末3のCPU31は、経路に含まれるすべての中継サーバ6から、それぞれレスポンスを受信する(S59)。これにより、CPU31は、中継サーバ6が転送中に送信バッファに一時記憶する圧縮音データのデータ量を、それぞれ取得する。CPU31は、上記同様、取得した中継サーバ6のデータ量に取得時刻を付加し、RAM33に記憶する。
CPU31は、音データ通信プログラムの動作に関してあらかじめなされた設定において、送信バッファのデータ量に基づいて結合時間を更新する設定がなされているか、あるいはデータ増加量に基づいて更新する設定がなされているか判断する(S60)。データ量に基づき更新する設定である場合(S60:YES)、CPU31は、RAM33に記憶した自拠点の送信バッファのデータ量について、過去3秒間分のデータ量から平均値を算出する。同様に、CPU31は、RAM33に記憶した中継サーバ6の送信バッファのデータ量について、過去3秒間分のデータ量から平均値を算出する(S61)。CPU31は、S61の処理で求めたデータ量の平均値を合算し、さらに合算値の平均値(平均データ量)を算出する(S62)。平均データ量は、すなわち、経路上に含まれるすべての送信バッファに記憶されている圧縮音データのデータ量を、過去3秒間において平均した平均値である。
CPU31は、平均データ量が、圧縮音データの1単位時間分(5ms分)のデータ量より大きいか否か判断する(S63)。平均データ量が1単位時間分の圧縮音データのデータ量より大きい場合(S63:YES)、CPU31は、送信バッファに格納される圧縮音データが増えている状態であり、データ送信に必要な帯域幅よりもネットワーク8の帯域幅が狭いと判断する。ゆえにCPU31は、圧縮音データの結合時間を1単位時間分、増加して(S65)、結合時間更新処理を終了し、音データ通信プログラムのメインルーチンに処理を戻し、処理をS85(図4参照)に進める。なお、圧縮音データの結合時間の上限は、200ms(結合数:40)とする。平均データ量が1単位時間分のデータ量以下の場合(S63:NO)、CPU31は、送信バッファに格納される圧縮音データが減っている状態または蓄積されていない状態であり、データ送信に必要な帯域幅がネットワーク8において確保されていると判断する。ゆえにCPU31は、圧縮音データの結合時間を1単位時間分、減少して(S66)、結合時間更新処理を終了し、音データ通信プログラムのメインルーチンに処理を戻し、処理をS85に進める。なお、圧縮音データの結合時間の下限は、5ms(結合数:1)とする。
図4に示すように、CPU31は、再生処理のサブルーチンを実行する(S85)。図8に示すように、再生処理において、CPU31は、OSに従って他の会議端末3から音データを受信する処理を行った場合にOSから通知される受信イベントの通知を受けたか否か判断する(S86)。CPU31は、OSに従って、ネットワーク8を介して他の会議端末3から結合音データを受信する処理を行った場合、IP/TCPヘッダを除去して受信用のソケットバッファに記憶し、音データ通信プログラムに対して受信イベントを通知する。音データ通信プログラムの実行において、CPU31は、受信イベントの通知がなければ(S86:NO)、処理をS95に進める。CPU31は、受信イベントの通知があれば(S86:YES)、IP/TCPヘッダを除去した結合音データを受信用ソケットバッファから取得する(S87)。CPU31は、IP/TCPヘッダを除去した結合音データから、通信プロトコルのヘッダを除去し(S88)、暗号化ヘッダに指定のアルゴリズムに従って複合化することで(S90)、付加情報を付加した結合音データを得る。
CPU31は、付加情報に含まれる結合時間の情報に基づいて、結合音データを分割し、圧縮音データを得る(S91)。CPU31は、圧縮音データを公知のデコーダでデコードし(S92)、得られた音データをRAM33の再生バッファに格納して(S93)、処理をS95に進める。CPU31は、再生バッファに未再生の音データが記憶されているか否か判断する(S95)。再生バッファに未再生の音データがなければ(S95:NO)、CPU31は再生処理を終了し、音データ通信プログラムのメインルーチンに処理を戻し、処理をS99に進める。再生バッファに未再生の音データがある場合(S95:YES)、CPU31は、再生バッファから未再生の音データを格納順に取り出し(S96)、スピーカ45に送信する(S97)。スピーカ45は、受信した音データをD/A変換して出力し、音声を再生する。CPU31は再生処理を終了し、音データ通信プログラムのメインルーチンに処理を戻し、処理をS99に進める。
図4に示すように、CPU31は、会議室から退室する操作を入力部42から受け付けた場合、あるいは終了リクエストに基づいて会議サーバ1が送信する会議終了の通知を受信した場合に、遠隔会議を終了し(S99:YES)、音データ通信プログラムの実行を終了する。遠隔会議を継続する場合(S99:NO)、CPU31は処理をS27に戻し、S27〜S99の処理を繰り返して実行することで、遠隔会議に参加する他の会議端末3に対して音データを送信し、他の会議端末3から受信した音データを再生する。
ところで、図6に示す、結合時間更新処理において、音データ通信プログラムの動作に関し、送信バッファのデータ増加量に基づき結合時間を更新する設定がなされている場合(S60:NO)、CPU31は、処理をS67に進める。CPU31は、RAM33に記憶した自拠点の送信バッファのデータ量に基づいて、過去3秒間における自拠点のデータ量の増加量を算出する。同様に、CPU31は、RAM33に記憶した中継サーバ6の送信バッファのデータ量に基づいて、中継サーバ6の過去3秒間のデータ量の増加量を算出する(S67)。CPU31は、S67の処理で求めたデータ増加量の平均値(平均データ増加量)を算出する(S68)。平均データ増加量は、すなわち、経路上に含まれるすべての送信バッファにおいて、圧縮音データのデータ量が過去3秒間に増加した量を平均した平均値である。
CPU31は、平均データ増加量が0であれば、送信バッファに蓄積される圧縮音データのデータ量と、送信バッファから取り出されて送信対象の会議端末3へ送信される圧縮音データのデータ量が平衡状態にあると判断し、結合時間を維持する。平均データ量が正の値を有する場合、CPU31は、データ送信に必要な帯域幅よりもネットワーク8の帯域幅が狭く、送信バッファに格納される圧縮音データのデータ量が増えている状態であると判断する。CPU31は、送信バッファのデータ量を減らすため、データ送信に必要な帯域幅をネットワーク8の帯域幅よりも狭くする処理を行う。
例えば、上記同様、1単位時間分の圧縮音データのデータ量が12.5byteであり、1回のデータ送信において付加されるヘッダ等のデータ量が120byteであるとする。また、過去3秒間における平均データ増加量が250byteであった場合を想定する。この場合、CPU31は、結合時間を増加させて圧縮音データを結合し、データ送信の回数を減らすことで、ヘッダ等の除去によるデータ量の削減量を平均データ増加量より大きくする処理を行う。例えば、現在の結合時間が30ms(結合数:6)である場合、CPU31は、4送信分の圧縮音データを結合して1回で送信する処理を行うことで、3送信分のヘッダ等のデータ量(120×3=360byte)を削減する。CPU31は、1回のデータ送信において、120+12.5×6=195byteのデータを30ms以内に行っており、4回のデータ送信では195×4=780byteを120ms以内に送信する。4回のデータ送信分の圧縮音データを結合し(結合数:24)、1回で送信する場合、CPU31は、120+(12.5×6)×4=420byteのデータを120ms以内に送信すればよい。すなわち、結合時間を増加させる前、CPU31は、12.5×6=75byteの圧縮音データに1回分のヘッダ等を付加して30ms以内に送信し、4送信の合計で、75×4=300byteの圧縮音データと4回分のヘッダ等を120ms以内に送信する状態にある。結合時間を増加させることによって、CPU31は、12.5×24=300byteの圧縮音データと1回分のヘッダ等を1送信で120ms以内に送信する状態に移行する。4送信分の圧縮音データを1送信分に結合することで、ヘッダ等のデータ量は変化するが、圧縮音データのみのデータ量は変化しない。このように、CPU31は、平均データ増加量の250byteより大きい360byteのデータ量を削減することができるので、送信バッファのデータ量を減らすことができる。
なお、CPU31は、上記例では4送信分の圧縮音データを1送信分に結合したが、例えば1回に送信する圧縮音データの結合数をさらに増やし、5送信分以上の圧縮音データを結合しても、削減できるデータ量を平均データ増加量よりも大きくすることが可能である。しかし、前述したように、結合時間が長くなるほど、音声の再生における遅延は大きくなる。ゆえに、CPU31は、上記のように結合して増加させる結合時間の設定において、圧縮音データの結合によって削減できるデータ量が平均データ増加量を上回らせることができる結合時間のうち、最小となる結合時間を設定する。例えば、上記例の場合、もとの結合数が6(結合時間:30ms)であり、結合数を24以上、例えば5送信分を結合して結合数を30(結合時間:150ms)とした場合でも、4送信分のヘッダ等のデータ量(120×4=480byte)を削減することができる。このような場合でも、CPU31は、削減できるデータ量が平均データ増加量を上回る結合時間のうち、最小となる結合数、すなわち24(結合時間120ms)を、結合数に設定する。
また、過去3秒間における平均データ増加量が−250byteであった場合(送信バッファのデータ量が減った場合)を想定する。この場合、CPU31は、結合時間を減少させて圧縮音データを分割し、データ送信の回数を増やすことで、ヘッダ等の付加によるデータ量の増加量を、過去3秒間におけるデータ量の減少量の平均値よりも大きくする処理を行う。例えば、現在の結合時間が120ms(結合数:24)である場合、CPU31は、1送信分の圧縮音データを分割して4回で送信する処理を行い、3送信分のヘッダ等のデータ量(120×3=360byte)を追加する。CPU31は、1回のデータ送信において、120+(12.5×24)=420byteのデータを120ms以内に行っている。1回のデータ送信分の圧縮音データを4分割し(結合数:6)、4回に分けて送信する場合、CPU31は、1送信あたり120+12.5×6=195byteの圧縮音データを30ms以内に送信し、もとの120ms以内では、4送信分、195×4=780byteの圧縮音データを送信する。すなわち、結合時間を減少させる前、CPU31は、12.5×24=300byteの圧縮音データに1回分のヘッダ等を付加して120ms以内に1回で送信する状態にある。結合時間を減少させることによって、CPU31は、12.5×6=75byteの圧縮音データに1回分のヘッダ等を付加して30ms以内に送信し、4送信の合計で、75×4=300byteの圧縮音データと4回分のヘッダ等を120ms以内に送信する状態に移行する。1送信分の圧縮音データを4送信分に分割することで、ヘッダ等のデータ量は変化するが、圧縮音データのみのデータ量は変化しない。このように、CPU31は、過去3秒間におけるデータ量の減少量の250byteより大きい360byteのデータ量を増加させたデータ送信を行うことができるので、送信バッファのデータ量を増やすことができる。
なお、CPU31は、上記例では1送信分の圧縮音データを4送信分に分割したが、例えば1回に送信する圧縮音データの結合数をさらに減らし、5送信分以上に分割しても、増加できるデータ量をデータ減少量の平均値よりも大きくすることが可能である。しかし、前述したように、結合時間が短くなるほど、送信に必要な帯域幅が広くなるため、パケットロスを生ずる可能性が大きくなる。ゆえに、CPU31は、上記のように分割して減少させる結合時間の設定において、圧縮音データの分割によって増加できるデータ量がデータ減少量の平均値を上回らせることができる結合時間のうち、最大となる結合時間を設定する。例えば、上記例の場合、分割前の結合数が24(結合時間:120ms)であり、結合数を6以下、例えば8送信に分割して結合数を3(結合時間:15ms)とした場合でも、7送信分のヘッダ等のデータ量(120×7=840byte)を増加することができる。このような場合でも、CPU31は、増加できるデータ量が平均データ減少量を上回る結合時間のうち、最大となる結合数、すなわち6(結合時間30ms)を、結合数に設定する。
このように、CPU31は、データ増加量に応じた結合時間を設定することで、送信バッファに蓄積される圧縮音データのデータ量を一定に保つ制御を行う(S70)。CPU31は、結合時間更新処理を終了し、音データ通信プログラムのメインルーチンに処理を戻し、処理をS85に進める。
ところで、1の会議端末3は、他の会議端末3に結合音データを送信する経路を、会議サーバ1から受信した経路情報において決定するが、経路上に中継サーバ6が含まれない場合がある。また、中継サーバ6のCPU61が実行する中継プログラム(後述)の設定において、中継サーバ6のCPU61は、RAM63に送信バッファの記憶領域を確保しない場合がある。この場合、会議端末3のCPU31は、図6に示す、結合時間更新処理において、中継サーバ6の送信バッファがないと判断し(S56:NO)、処理をS71に進める。
以下に説明するS71〜S80の処理は、中継サーバ6の送信バッファを含む点を除き、上記したS57〜S70の処理(図6参照)と同様である。図7に示すように、CPU31は、送信対象の会議端末3に対応する送信バッファに記憶する圧縮音データのデータ量を取得する(S71)。CPU31は、取得した自拠点のデータ量に取得時刻を付加し、RAM33に記憶する。CPU31は、音データ通信プログラムの動作に関する設定において、送信バッファのデータ量に基づく結合時間の更新設定がなされているか、あるいはデータ増加量に基づく更新設定がなされているか判断する(S72)。
データ量に基づく結合時間の更新設定がなされている場合(S72:YES)、CPU31は、RAM33に記憶した送信バッファのデータ量について、過去3秒間分のデータ量から平均値を算出する(S73)。CPU31は、平均データ量が、圧縮音データの1単位時間分のデータ量より大きいか否か判断する(S75)。平均データ量が1単位時間分のデータ量より大きい場合(S75:YES)、CPU31は、圧縮音データの結合時間を1単位時間分、増加する(S76)。平均データ量が1単位時間分のデータ量以下の場合(S75:NO)、CPU31は、圧縮音データの結合時間を1単位時間分、減少する(S77)。CPU31は、結合時間更新処理を終了し、音データ通信プログラムのメインルーチンに処理を戻し、処理をS85に進める。
また、S72の判断処理において、データ増加量に基づく結合時間の更新設定がなされている場合(S72:NO)、CPU31は、RAM33に記憶した送信バッファのデータ量に基づき、過去3秒間におけるデータ量の増加量を算出する(S78)。CPU31は、S70で行った処理と同様に、データ増加量に応じて結合時間を設定し(S80)、送信バッファに蓄積される圧縮音データのデータ量を一定に保つ制御を行う。CPU31は、結合時間更新処理を終了し、音データ通信プログラムのメインルーチンに処理を戻し、処理をS85に進める。
以上のように、会議端末3のCPU31は、音データ通信プログラムを実行し、ネットワーク8における帯域の変化に応じて圧縮音データの結合時間を変更することで、音データの送信において遅延を抑制し、パケットロスを防止することができる。
次に、図9を参照し、中継サーバ6のCPU61が中継プログラムを実行し、会議端末3間で送受信される音データを中継する場合の動作について説明する。中継サーバ6のCPU61は、サーバ管理者が行った設定に基づき、例えば、サーバOSが立ち上がると中継プログラムをHDD67から読み込んで自動実行する。CPU61は、会議サーバ1に接続し、ネットワークアドレスと、会議サーバ1に接続するネットワーク8上の経路情報と、遠隔会議のデータ転送を中継するサーバとして中継サーバ6を機能させることを通知し、データベースに登録させる。また、中継プログラムは、中継サーバ6の運用において、送信バッファを利用したデータ転送を行う設定と、送信バッファを利用しないデータ転送を行う設定とのいずれか一方をあらかじめ設定することができる。送信バッファを利用したデータ転送を行う設定がなされている場合、CPU61は、RAM63に送信バッファの記憶領域を確保し、且つ、会議サーバ1に送信バッファを有することを通知してデータベースに登録させる。
中継サーバ6のCPU61は、送信バッファを有する場合(S111:YES)、OSに従って会議端末3または他の中継サーバ6から音データを受信した場合にOSから通知される受信イベントの通知を受けたか否か判断する(S112)。CPU61は、OSに従って、ネットワーク8を介して会議端末3または他の中継サーバ6から結合音データを受信した場合、IP/TCPヘッダを除去して受信用のソケットバッファに記憶し、中継プログラムに対して受信イベントを通知する。中継プログラムの実行において、CPU61は、受信イベントの通知がなければ(S112:NO)、処理をS120に進める。CPU61は、受信イベントの通知があれば(S112:YES)、IP/TCPヘッダを除去した結合音データを受信用ソケットバッファから取得する(S113)。CPU61は、IP/TCPヘッダを除去した結合音データから、通信プロトコルのヘッダを除去し(S115)、暗号化ヘッダに指定のアルゴリズムに従って複合化することで(S116)、付加情報を付加した結合音データを得る。CPU61は、付加情報に含まれる結合時間の情報に基づいて結合音データを分割し、圧縮音データを得る(S117)。CPU61は、圧縮音データを送信バッファに格納し(S118)、処理をS120に進める。
CPU61は、送信処理のサブルーチンを実行する(S120)。中継プログラムにおける送信処理は、音データ通信プログラムにおける送信処理(図5)と同様の処理である。すなわち、CPU61は、送信バッファから、結合時間に応じた結合数分の圧縮データを取り出して結合し、結合音データに対し、付加情報の付加、暗号化、プロトコルヘッダの付加を行って、送信用ソケットバッファに記憶する。CPU61は、OSに対し、結合音データの送信を指示する送信リクエストを出力する。CPU61は、OSに従って、送信対象の会議端末3または経路上で次に位置する中継サーバ6のネットワークアドレスを送信先に指定したIP/TCPヘッダを結合音データに付加し、送信を開始する。
CPU61は、送信処理を実行したら、結合時間更新処理のサブルーチンを実行する(S121)。中継プログラムにおける結合時間更新処理も、音データ通信プログラムにおける結合時間更新処理(図6、図7)と同様の処理である。すなわち、CPU61は、送信バッファに一時記憶する圧縮音データのデータ量またはデータ増加量に基づいて、結合時間を更新する。また、CPU61は、送信対象の会議端末3への経路上に他の中継サーバ6が含まれる場合、中継サーバ6が送信バッファを有するか否かに基づいて、上記同様、圧縮音データのデータ量またはデータ増加量に基づく結合時間の更新処理を行う。
CPU61は、結合時間更新処理を実行したら、会議端末3のCPU31が上記した結合時間更新処理において中継サーバ6の送信バッファのデータ量を問い合わせるために送信する取得リクエストを受信したか否か判断する(S122)。CPU61は、取得リクエストを受信した場合(S122:YES)、取得リクエスト送信元の会議端末3が送信対象とする会議端末3に対応して設けた送信バッファに記憶する圧縮音データのデータ量を取得する。CPU61は、取得リクエスト送信元の会議端末3にレスポンスとして送信バッファのデータ量を通知し(S123)、処理をS112に戻す。また、S122の判断処理において、取得リクエストを受信しなかった場合も(S122:NO)、CPU61は処理をS112に戻す。以降、CPU61はS112〜S123の処理を繰り返して実行し、ネットワーク8における帯域の変化に応じて圧縮音データの結合時間を変更しながら、遠隔会議に参加する複数の会議端末3間で送受信される音データを中継する。
また、中継プログラムにおいて送信バッファを利用しないデータ転送を行う設定がなされており、S111の判断処理において送信バッファがないと判断した場合(S111:NO)、CPU61は、処理をS125に進める。CPU61は、OSに従ってデータを送信する処理を行っている最中であるか否か判断する(S125)。送信中であれば(S125:YES)、送信中のデータの送信を継続するため、CPU61は処理をS125に戻して待機状態に移行する。送信中でなければ(S125:NO)、CPU61は、OSから受信イベントの通知を受けたか否か判断する(S126)。受信イベントの通知がなければ(S126:NO)、CPU61は処理をS125に戻し、待機状態に移行する。受信イベントの通知があれば(S126:YES)、CPU61は、OSに従う処理によってIP/TCPヘッダを除去した結合音データを受信用のソケットバッファから取得し(S127)、そのまま送信用のソケットバッファに記憶する(S128)。CPU61は、OSに対し、結合音データの送信を指示する送信リクエストを出力する。CPU61は、OSに従って、送信対象の会議端末3または経路上で次に位置する中継サーバ6のネットワークアドレスを送信先に指定したIP/TCPヘッダを結合音データに付加し、送信を開始する(S130)。CPU61は、処理をS125に戻し、以降、S125〜S130の処理を繰り返して実行し、遠隔会議に参加する複数の会議端末3間で送受信される音データをそのまま中継する。
以上説明したように、第一実施形態では、ネットワーク8にジッタが生じたり帯域幅が狭くなったりすると、1の会議端末3のCPU31は、他の会議端末3に送信する1つの結合音データを送信し終えるまでに時間がかかるようになる。このため、送信バッファは、圧縮音データのデータ量が増える。CPU31は、音データ通信プログラムの実行に従って、送信バッファのデータ量に応じて圧縮音データの結合時間を変更することで、一度に送信する結合音データのデータ量を調整することができる。送信バッファのデータ量が1単位時間より大きい場合、送信バッファは、格納する圧縮音データのデータ量が増えている状態である。この場合にCPU31は、圧縮音データの結合時間を1単位時間分増やすことで、結合音データの送信回数を減らすことができる。これにより、CPU31は、送信回数を減らした分、個々の結合音データの送信に必要なヘッダ等を削減することができる。ゆえにCPU31は、圧縮音データ生成時のエンコード条件を変更することなくデータ量を減らし、必要な帯域幅を狭くすることでパケット欠落を防いで、結合音データを他の会議端末3に送信でき、送信バッファのデータ量を減らすことができる。
また、送信バッファのデータ量が1単位時間以下である場合、CPU31は、データ送信に必要な帯域幅をネットワーク8に確保できている状態である。この場合にCPU31は、圧縮音データの結合時間を1単位時間分減らすことで、結合音データの送信回数を増やすことができる。これにより、他の会議端末3は、音データを、より小さな時間単位で得ることができるので、1の会議端末3における音データの入力と、他の会議端末3における音データの出力との関係において、歪みが小さく円滑なリニア性を確保することができる。また、一回に送受信される音データのデータ量が小さいほど、1の会議端末3における圧縮音データの結合にかかる時間、結合音データの送受信にかかる時間、他の会議端末3における結合音データのデコードから出力にかかる時間等は、短い。ゆえに、CPU31は、1の会議端末3における音データの入力タイミングと、他の会議端末3における音データの出力タイミングとの間に生ずる遅延時間を削減することができる。
また、1の会議端末3は、ネットワーク8においてジッタが発生したり帯域幅の変更が生じたりした場合に影響を受ける送信バッファのデータ量の変化に応じ、結合時間を1単位時間分増やしたり減らしたりできる。すなわち1の会議端末3は、ジッタが発生したり帯域幅が狭くなったりして送信バッファのデータ量が増加すれば、結合時間を1単位時間分増やして必要な帯域幅を減らし、送信を円滑に行えるようにすることで、送信バッファのデータ量を減らす。また、データ量が減少すれば、必要な帯域幅が確保されているので、結合時間を短くして他の会議端末3に送信する音データの入出力の関係におけるリニア性を確保することができる。
また、送信バッファのデータ量が増加した場合、CPU31は、データ量の増加分よりも、結合によって除去したヘッダ等のデータ量の削減分を大きくすることのできる結合数の中で、結合数が最小となるように結合時間を設定する。送信バッファのデータ量が減少した場合、CPU31は、データ量の減少分よりも、分割によって追加したヘッダ等のデータ量の増加分を大きくすることのできる結合数の中で、結合数が最大となるように結合時間を設定する。これにより、1の会議端末3は送信バッファのデータ量を略一定に維持することができる。すなわち、1の会議端末3は、ネットワーク8においてジッタが発生したり帯域幅の変更が生じたりしても、他の会議端末3への結合音データの送信を安定して行うことができる。
また、ネットワーク8においてジッタが発生したり帯域幅の変更が生じたりした場合、中継サーバ6の送信バッファに記憶する圧縮音データのデータ量も、変化を生ずる。ゆえに、CPU31は、1の会議端末3の送信バッファのデータ量と、中継サーバ6の送信バッファのデータ量の合計量の変化に応じて結合時間を設定することで、他の会議端末3への結合音データの送信を安定して行うことができる。
次に、本発明の第二実施形態について説明する。以下に説明する第二実施形態は、会議端末3のCPU31が実行する音データ通信プログラムの処理において、音データを圧縮し、結合する処理の過程が第一実施形態と異なる。具体的に、図10に示す音データ通信プログラムのメインルーチンは、S35〜S38の処理が、図4に示す第一実施形態に係る音データ通信プログラムのメインルーチンにおける処理と異なる。また、図11に示す送信処理は、S46の処理が、図5に示す第一実施形態に係る送信処理における処理と異なる。従って、以下の説明では、第一実施形態と異なる処理について説明し、同じ処理については説明を簡略化または省略する。なお、図10、図11に示すフローチャートにおいて、第一実施形態と同一の処理は、それぞれ図4、図5のフローチャートと同じステップ番号を付している。
図10に示すように、第二実施形態に係る会議端末3のCPU31は、音データ通信プログラムのS30の処理において、音データに発話が含まれる場合(S30:YES)、RAM33のサウンドバッファから音データを取得する(S31)。次いで、CPU31は、RAM33に記憶する結合時間を取得する(S35)。CPU31は音データを、デフォルト設定に基づくエンコード条件を設定した公知のエンコーダで処理して圧縮する(S36)。CPU31は、音データの圧縮を、データ長が結合時間に達するまで行う。データ長が結合時間未満である場合(S37:NO)、CPU31は処理をS40に進めてメインルーチンの処理を進行する。CPU31は、メインルーチンにおいてS27〜S99の処理を繰り返して実行し、その間、エンコーダによる音データの圧縮処理を継続する。データ長が結合時間に達した場合(S37:YES)、CPU31は、圧縮した音データを結合時間分の長さに生成した結合音データを得る。CPU31は、結合音データをRAM33の送信バッファに記憶し(S38)、処理をS40に進める。
CPU31は、送信処理のサブルーチンを実行する(S40)。図11に示すように、CPU31は、第二実施形態の送信処理において、送信対象の会議端末3に対応する送信バッファに、発話に基づく結合音データが記憶されている場合(S42:YES)、結合音データを送信バッファから取り出す(S46)。以下、第一実施形態と同様であり、CPU31は、結合音データに対し、付加情報の付加(S48)、暗号化(S50)、プロトコルヘッダの付加(S51)を行って、送信用ソケットバッファに記憶する(S52)。CPU31は、OSに対し、結合音データの送信を指示する送信リクエストを出力する。CPU31は、OSに従って、送信対象の会議端末3または経路上で次に位置する中継サーバ6のネットワークアドレスを送信先に指定したIP/TCPヘッダを結合音データに付加し(S52)、送信を開始する(S53)。
以上説明したように、第二実施形態では、CPU31は、音データをエンコーダで処理して圧縮する際に、結合時間に基づくデータ長の結合音データを生成する。これにより、CPU31は、音データのエンコードから結合音データの生成を一処理で行うことができるので、音データの送信のための加工にかかる時間を減らし、1の会議端末3における音データの入力タイミングと、他の会議端末3における音データの出力タイミングとの間に生ずる遅延時間を削減することができる。
なお本発明は上記実施形態に限定されず、種々の変更が可能である。会議端末3は、ラップトップ型、タワー型のPCに限らず、ノート型のPCであってもよいし、スマートフォン、タブレット型端末等であってもよい。会議端末3は、音データ通信プログラムを実行でき、且つネットワーク8に接続でき、マイク43による音声の収音と、スピーカ45による音声の出力が可能な端末装置であればよい。また、会議端末3は、マイク43およびスピーカ45を内蔵してもよい。
S63の処理で、CPU31は、平均データ量のしきい値として1単位時間分のデータ量と比較したが、これに限らず、2以上の単位時間分のデータ量と比較してもよいし、単位時間に限らず、任意の時間分のデータ量と比較してもよい。S65、S66の処理で、CPU31は、結合時間の増減を1単位時間分ずつ行ったが、2以上の単位時間分ずつ行ってもよい。S70の処理で、CPU31は、データ増加量に基づき結合時間の更新を行ったが、例えば図3のグラフに基づくテーブルを作成し、S67の処理で時間あたりのデータ増加速度を求め、データ増加速度よりも大きい帯域幅を削減できる結合時間をテーブルから求めてもよい。
S61またはS73の処理では過去3秒間のデータ量の平均値を求めたが、過去3秒間に限らず、0.5秒でも2秒でも、任意の時間であってもよい。S67またはS78におけるデータ増加量についても同様である。また、会議サーバ1は、中継サーバ6を兼ねてもよい。また、中継サーバ6はなくてもよい。
本発明においては、会議端末3が、「端末装置」に相当する。RAM33が、「記憶装置」に相当する。音データをエンコードして圧縮音データを生成するS32の処理が、「生成ステップ」に相当する。圧縮音データを送信バッファに記憶するS33の処理が、「記憶ステップ」に相当する。自拠点の送信バッファのデータ量を取得するS57もしくはS71の処理が、「取得ステップ」に相当する。平均データ量が1単位時間分のデータ量よりも大きいか否か判断するS63もしくはS75の処理が、「判断ステップ」に相当する。結合時間を1単位時間分増加または減少するS65またはS66もしくはS76またはS77の処理が、「設定ステップ」に相当する。結合時間分の圧縮音データを結合するS45の処理が、「結合ステップ」に相当する。OSによる結合音データの送信を指示するS53の処理が、「送信指示ステップ」に相当する。自拠点の送信バッファのデータ増加量を算出するS67もしくはS78の処理が、「演算ステップ」に相当する。中継サーバ6に送信バッファのデータ量を問い合わせるリクエストを送信するS58の処理が、「送信ステップ」に相当する。中継サーバ6から送信バッファのデータ量を通知するレスポンスを受信するS59の処理が、「受信ステップ」に相当する。
1 会議サーバ
3 会議端末
6 中継サーバ
8 ネットワーク
31 CPU
33 RAM
43 マイク
3 会議端末
6 中継サーバ
8 ネットワーク
31 CPU
33 RAM
43 マイク
Claims (7)
- ネットワークを介して接続し、各種データの送受信を相互に行うことで遠隔会議を実行可能な複数の端末装置のうちの1の端末装置のコンピュータが実行可能なプログラムであって、
前記1の端末装置のコンピュータに、
前記1の端末装置に接続されたマイクを介して取得された音データを、予め設定された圧縮パラメータに従って圧縮し、圧縮音データを生成する生成ステップと、
前記生成ステップにおいて生成された前記圧縮音データを生成順に、前記1の端末装置が備える記憶装置に記憶する記憶ステップと、
前記記憶装置に記憶されている前記圧縮音データのデータ量を表す第一記憶量を取得する取得ステップと、
前記取得ステップにおいて取得された前記第一記憶量に基づく値である記憶値が、所定のしきい値より大きいか否かを判断する判断ステップと、
前記判断ステップにおける判断の結果、前記記憶値が前記しきい値より大きい場合、前記圧縮音データを結合する時間を指定する結合時間を第一結合時間に設定し、前記記憶値が前記しきい値以下である場合、前記結合時間を前記第一結合時間より短い第二結合時間に設定する設定ステップと、
前記記憶ステップにおいて前記記憶装置に記憶された前記圧縮音データを、前記設定ステップにおいて設定された前記結合時間に応じた時間数分、逐次取り出して結合し、結合音データを生成する結合ステップと、
前記結合ステップにおいて生成された前記結合音データを、他の端末装置に対して送信する指示を行う送信指示ステップと
を実行させることを特徴とする音データ通信プログラム。 - 前記取得ステップにおいて取得された前記第一記憶量と、前記取得ステップにおいて前記第一記憶量よりも後に取得された第二記憶量との差に基づく第一変化量を、前記記憶値として演算する演算ステップをさらに実行させることを特徴とする請求項1に記載の音データ通信プログラム。
- 前記設定ステップは、前記演算ステップにおいて演算される前記第一変化量の絶対値よりも、前記結合時間に応じて送信回数が変化することによって前記結合音データのそれぞれに付加される送信ヘッダのデータ量における変化の総量である第二変化量の絶対値が大きく、且つ、前記第一変化量と前記第二変化量との差分の絶対値が最小となる値に前記結合時間を設定することを特徴とする請求項2に記載の音データ通信プログラム。
- 前記複数の端末装置が接続され、前記1の端末装置が前記他の端末装置に送信する前記結合音データを中継する中継サーバに、前記中継サーバの記憶装置に記憶される前記1の端末装置から送信された前記結合音データの結合が解除された前記圧縮音データのデータ量を表す第三記憶量を問い合わせる要求信号を送信する送信ステップと、
前記要求信号の送信に応じて、前記第三記憶量を通知する回答信号を前記中継サーバから受信する受信ステップと
をさらに実行させ、
前記記憶値は、前記第一記憶量と前記第三記憶量との合計量に基づく値であることを特徴とする請求項1から3のいずれかに記載の音データ通信プログラム。 - ネットワークを介して接続し、各種データの送受信を相互に行うことで遠隔会議を実行可能な複数の端末装置のうちの1の端末装置のコンピュータが実行可能なプログラムであって、
前記1の端末装置のコンピュータに、
前記1の端末装置に接続されたマイクを介して取得された音データを、予め設定された圧縮パラメータに従って圧縮し、且つ、前記音データを結合する時間を指定する結合時間に応じた時間数分、前記音データを結合して、圧縮済みの結合音データを生成する結合ステップと、
前記結合ステップにおいて生成された前記結合音データを、前記1の端末装置が備える記憶装置に記憶する記憶ステップと、
前記記憶ステップにおいて前記記憶装置に記憶された前記結合音データを、他の端末装置に対して送信する指示を行う送信指示ステップと、
前記記憶装置に記憶されている前記結合音データのデータ量を表す第一記憶量を取得する取得ステップと、
前記取得ステップにおいて取得された前記第一記憶量に基づく値である記憶値が、所定のしきい値より大きいか否かを判断する判断ステップと、
前記判断ステップにおける判断の結果、前記記憶値が前記しきい値より大きい場合、前記結合時間を第一結合時間に設定し、前記記憶値が前記しきい値以下である場合、前記結合時間を前記第一結合時間より短い第二結合時間に設定する設定ステップと
を実行させることを特徴とする音データ通信プログラム。 - ネットワークを介して接続し、各種データの送受信を相互に行うことで遠隔会議を実行可能な複数の端末装置のうちの1の端末装置であって、
前記1の端末装置に接続されたマイクを介して取得された音データを、予め設定された圧縮パラメータに従って圧縮し、圧縮音データを生成する生成手段と、
前記生成手段が生成した前記圧縮音データを生成順に記憶する記憶装置と、
前記記憶装置が記憶する前記圧縮音データのデータ量を表す第一記憶量を取得する取得手段と、
前記取得手段が取得した前記第一記憶量に基づく値である記憶値が、所定のしきい値より大きいか否かを判断する判断手段と、
前記判断手段の判断結果に基づいて、前記記憶値が前記しきい値より大きい場合、前記圧縮音データを結合する時間を指定する結合時間を第一結合時間に設定し、前記記憶値が前記しきい値以下である場合、前記結合時間を前記第一結合時間より短い第二結合時間に設定する設定手段と、
前記記憶装置が記憶する前記圧縮音データを、前記設定手段が設定した前記結合時間に応じた時間数分、逐次取り出して結合し、結合音データを生成する結合手段と、
前記結合手段が生成した前記結合音データを、他の端末装置に対して送信する指示を行う送信指示手段と
を備えたことを特徴とする端末装置。 - ネットワークを介して接続し、各種データの送受信を相互に行うことで遠隔会議を実行可能な複数の端末装置のうちの1の端末装置のコンピュータが実行可能な音データ通信方法であって、
前記1の端末装置に接続されたマイクを介して取得された音データを、予め設定された圧縮パラメータに従って圧縮し、圧縮音データを生成する生成ステップと、
前記生成ステップにおいて生成された前記圧縮音データを生成順に、前記1の端末装置が備える記憶装置に記憶する記憶ステップと、
前記記憶装置に記憶されている前記圧縮音データのデータ量を表す第一記憶量を取得する取得ステップと、
前記取得ステップにおいて取得された前記第一記憶量に基づく値である記憶値が、所定のしきい値より大きいか否かを判断する判断ステップと、
前記判断ステップにおける判断の結果、前記記憶値が前記しきい値より大きい場合、前記圧縮音データを結合する時間を指定する結合時間を第一結合時間に設定し、前記記憶値が前記しきい値以下である場合、前記結合時間を前記第一結合時間より短い第二結合時間に設定する設定ステップと、
前記記憶ステップにおいて前記記憶装置に記憶された前記圧縮音データを、前記設定ステップにおいて設定された前記結合時間に応じた時間数分、逐次取り出して結合し、結合音データを生成する結合ステップと、
前記結合ステップにおいて生成された前記結合音データを、他の端末装置に対して送信する指示を行う送信指示ステップと
を含むことを特徴とする音データ通信方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013247617A JP2015106794A (ja) | 2013-11-29 | 2013-11-29 | 音データ通信プログラム、端末装置および音データ通信方法 |
US14/553,312 US9473552B2 (en) | 2013-11-29 | 2014-11-25 | Preventing omission of data in a remote conference |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013247617A JP2015106794A (ja) | 2013-11-29 | 2013-11-29 | 音データ通信プログラム、端末装置および音データ通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015106794A true JP2015106794A (ja) | 2015-06-08 |
Family
ID=53265494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013247617A Pending JP2015106794A (ja) | 2013-11-29 | 2013-11-29 | 音データ通信プログラム、端末装置および音データ通信方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9473552B2 (ja) |
JP (1) | JP2015106794A (ja) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000349824A (ja) | 1999-03-31 | 2000-12-15 | Soft Front:Kk | 音声データ送受信システム |
KR20010101401A (ko) | 1999-03-31 | 2001-11-14 | 무라타 토시후미 | 패킷 네트워크를 통해 음성데이터를 전송하는 시스템 |
US6754231B1 (en) * | 1999-06-18 | 2004-06-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Robust header compression in packet communications |
FI116498B (fi) | 2002-09-23 | 2005-11-30 | Nokia Corp | Kaistanleveyden mukauttaminen |
US7664109B2 (en) * | 2004-09-03 | 2010-02-16 | Microsoft Corporation | System and method for distributed streaming of scalable media |
US7593032B2 (en) * | 2005-07-20 | 2009-09-22 | Vidyo, Inc. | System and method for a conference server architecture for low delay and distributed conferencing applications |
US20070133436A1 (en) * | 2005-12-09 | 2007-06-14 | Sun Microsystems, Inc. | Audio bridge for network conferencing |
US8351327B1 (en) * | 2006-08-28 | 2013-01-08 | Juniper Networks, Inc. | Intermediate network device applying application-layer quality of service to channels within a communication session |
US20080091838A1 (en) | 2006-10-12 | 2008-04-17 | Sean Miceli | Multi-level congestion control for large scale video conferences |
CN102074262B (zh) * | 2009-11-20 | 2015-09-23 | 赛恩倍吉科技顾问(深圳)有限公司 | 硬盘固定装置 |
-
2013
- 2013-11-29 JP JP2013247617A patent/JP2015106794A/ja active Pending
-
2014
- 2014-11-25 US US14/553,312 patent/US9473552B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20150154207A1 (en) | 2015-06-04 |
US9473552B2 (en) | 2016-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017020664A1 (zh) | 直播视频的视频编码参数设置方法、装置、视频编码设备及存储介质 | |
US8897144B2 (en) | Quality of user experience testing for video transmissions | |
JP6174501B2 (ja) | 映像会議サーバ、映像会議システム、および、映像会議方法 | |
EP3070935B1 (en) | Apparatus, system, and method of controlling output of content data, and carrier means | |
JP6179179B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
US9386278B2 (en) | Teleconference method, storage medium storing program for teleconference, and terminal apparatus | |
US9148356B2 (en) | Communication apparatus, method for implementing communication, and non-transitory computer-readable medium | |
US9288328B2 (en) | Communication terminal and non-transitory computer readable medium storing program | |
US20160028996A1 (en) | Teleconference System, Storage Medium Storing Program for Server Apparatus, and Storage Medium Storing Program for Terminal Apparatus | |
JP6116240B2 (ja) | 送信装置、送信方法、及びプログラム | |
JP2009194674A (ja) | 通信端末装置および通信端末装置の制御方法 | |
JP6193569B2 (ja) | 受信装置、受信方法、及びプログラム、撮像装置、撮像方法、及びプログラム、送信装置、送信方法、及びプログラム | |
US9473541B2 (en) | Communication device and non-transitory computer-readable medium | |
JP7377352B2 (ja) | 複数メンバーでのインスタントメッセージング方法、システム、装置及び電子機器、並びにコンピュータプログラム | |
JP2016192610A (ja) | 遠隔会議プログラム、制御装置及び遠隔会議方法 | |
JP6582722B2 (ja) | コンテンツ配信装置 | |
JP2015106794A (ja) | 音データ通信プログラム、端末装置および音データ通信方法 | |
JP5257373B2 (ja) | パケット送信装置、パケット送信方法及びパケット送信プログラム | |
JP2018530954A (ja) | パノラママルチメディアストリーミングの方法及びシステム | |
JP6740110B2 (ja) | データ配信システム、通信端末、及びプログラム | |
JP2017225164A (ja) | 受信装置、受信方法、送信装置、送信方法、及びプログラム | |
US20150015661A1 (en) | Conference System, Program and Conference Method | |
US11438400B2 (en) | Content data delivery system, server, and content data delivery method | |
JP2018157282A (ja) | 端末、プログラム、データ送信方法 | |
US20150150089A1 (en) | Communication control apparatus, communication control method, and recording medium |