JP2005151044A - 音声ミキシング方法、音声ミキシングシステム及び音声ミキシングのためのプログラム - Google Patents
音声ミキシング方法、音声ミキシングシステム及び音声ミキシングのためのプログラム Download PDFInfo
- Publication number
- JP2005151044A JP2005151044A JP2003384022A JP2003384022A JP2005151044A JP 2005151044 A JP2005151044 A JP 2005151044A JP 2003384022 A JP2003384022 A JP 2003384022A JP 2003384022 A JP2003384022 A JP 2003384022A JP 2005151044 A JP2005151044 A JP 2005151044A
- Authority
- JP
- Japan
- Prior art keywords
- sample
- samples
- data
- voice
- mixing
- 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
Landscapes
- Telephonic Communication Services (AREA)
Abstract
【課題】 多者間通話サービスにおける効率的かつ計算量の少ない音声ミキシング方法及び音声ミキシングシステムを提供する。
【解決手段】 同時刻に発生された複数参加者の音声データのパケットをサンプルごとに比較し、比較したサンプルの中から振幅の絶対値が最大のサンプルを抽出する。この抽出したサンプルを出力として取り出し、他のサンプルを破棄することで、同時に発生した音声の中では振幅絶対値が最大となる音声のみを送信する。これにより、多者間通話システムにおける計算量を著しく低減させることができる。
【選択図】 図6
【解決手段】 同時刻に発生された複数参加者の音声データのパケットをサンプルごとに比較し、比較したサンプルの中から振幅の絶対値が最大のサンプルを抽出する。この抽出したサンプルを出力として取り出し、他のサンプルを破棄することで、同時に発生した音声の中では振幅絶対値が最大となる音声のみを送信する。これにより、多者間通話システムにおける計算量を著しく低減させることができる。
【選択図】 図6
Description
本発明は、パケット交換網を用いて多人数で音声通話を行う場合の複数音声のミキシング方法に関し、特に、揺らぎと遅延を緩和した高速の音声ミキシング方法及びそれを利用した音声ミキシングシステム、並びにそのためのプログラムに関する。
大容量回線の低価格化や通信業界の規制緩和などにより、安価に電話を行うことのできるIP 電話方式サービスの利用者は増加傾向にある。従来の電話は回線交換網を利用しているため、1対1通話が基本の音声通信であり、大手通信会社の提供するサービスとしての位置付けであった。
IP 電話方式はIP(Internet Protocol)を利用したパケット交換網を利用して電話通信を行うサービスである。このIP 電話方式では、音声データはWeb等のデータと同列に扱うことが可能である。このことは、従来の電話では実現が難しかった応用サービスの提供を容易にする可能性を有している。さらに、インターネットを利用するIP 電話方式では、一般利用者が容易に応用サービスを提供することも可能になる。
しかし、利用する回線の特性が異なるため、従来の電話では起こらない次のような問題が発生する。すなわち、IP 電話方式では回線交換網と違い、通信経路を占有することが無いため、データの伝送経路上のトラフィック状況によって遅延が生じ、特に到着時間に一貫性が無い「揺らぎ」が生じる。電話はリアルタイム性が重要になるため、揺らぎを吸収する制御は重要である。この揺らぎや遅延を吸収する制御用のプロトコルとしては、一般にRTP(Real-time Transport Protocol)が使用される。
また、IP 電話方式では、送話者から受話者へデータが到着するまでに、送話者側では音声サンプリング、エンコード、パケット化に伴った遅延時間が生じ、送話者から受話者までの伝送経路中では、伝送距離に応じた伝播遅延、経路にあるルータにおけるパケットのキューイング遅延等が生じ、受話者側ではパケットの処理、揺らぎの吸収、受信データのチェック、音声のデコード時間が生じる。したがって、高いQoS(Quality of Service)を有するには、遅延時間は短くする必要があり、合計の遅延時間は150ms以内にする必要がある。
IPのようなパケット交換網を伝送路として用いるIP電話では、従来の回線交換網による電話と異なり、回線の特性上様々な応用サービスを容易に提供することが可能である。従来の電話では、回線はキャリアにより綿密に管理されたものであるため、新規にサービスを提供するにはキャリアのサービスという位置付けで行う必要があった。しかし、パケット交換網は分散管理された網であるため、容易に様々なサービスを提供することが可能であり、かつソフトウェアベースで提供することが可能である。
IP 電話方式で重要な技術の一つとして、パケット化されたデジタル音声をミキシングする技術がある。従来のデジタル音声ミキシングは、集音装置から入力されたアナログ音声を標本化、量子化することによりデジタル化された音声データに対して行っていた。デジタル化された音声は、シャノンの標本化定理によりアナログ音声として再構成できるため、音波として扱うことができる。したがって、音波を重ね合わせることでミキシングが達成される。
従来の音声ミキシング方法及びシステムとしては、図10に示すようなものが提案されている(非特許文献1)。図10に示す音声ミキシング方法は、多者間通話システムに参加する3人の参加者A、B、Cの音声を符号化し、ミキシング(混合)を行い、ミキシングした音声から自分(送信者)の音声を減算して復号化し、自分以外の他の二人に音声を送信する方法である。すなわち、参加者Aの音声は符号化器D1で符号化され、タイムスタンプが押されたリニアストリームとしてバッファに記憶される。その後、ミキシングされてX=A+B+Cの混合リニアストリームが作成される。そして、この混合リニアストリームから、送信者自身の音声データを減算した音声データ(例えば、送信者がAであれば、X−A=B+C)が、復号化器E1で復号化されて、Aに送信される。送り先がBあるいはCの場合も同様な操作で他の二者の音声データが送信される。ここで、各送信者からの音声データは、通常20ms単位で送られてくるので、このデータを二つまとめて40msの音声データとして送信される。
Internet Telephony Workshop 2001「Centralized Conferencing using SIP」(2001年4月2日発行)
Internet Telephony Workshop 2001「Centralized Conferencing using SIP」(2001年4月2日発行)
しかしながら、この従来のデジタル音声データのミキシングまでのプロセスでは、ミキシングなどに必要となる処理遅延を考慮はしているものの、全てをミキシングしてから自身のデータを減算する等の無駄があり、また送信する音声データを40msにすることで音声品質に影響を及ぼす危険性がある。
また、従来のデジタル音声ミキシングでは、波形を重ね合わせることにより、全てのサンプルに対して計算を行わなければならないため、計算量が大きいという問題があった。
本発明は、このような従来の手法が有している問題を解決しようとするものであり、ミキシング結果のクオリティを可能な限り落とさずに、高速な音声ミキシングを実現することを目的とするものである。
また、従来のデジタル音声ミキシングでは、波形を重ね合わせることにより、全てのサンプルに対して計算を行わなければならないため、計算量が大きいという問題があった。
本発明は、このような従来の手法が有している問題を解決しようとするものであり、ミキシング結果のクオリティを可能な限り落とさずに、高速な音声ミキシングを実現することを目的とするものである。
上記課題を解決し、本発明の目的を達成するため、請求項1に記載された音声データのミキシング方法の発明は、複数の参加者からのデジタルサンプリングされた音声データを所定時間毎のサンプルに分割して、該サンプルの振幅の絶対値を比較するステップと、この比較した複数の音声データのサンプルの中から振幅の絶対値が最大となる音声データのサンプルを選択するステップと、選択された絶対値最大の音声データのサンプルを出力し、選択されなかった音声データのサンプルを破棄するステップとからなることを特徴とする。
また、請求項2に記載された発明は、請求項1に記載された音声データのミキシング方法において、上記各サンプルの振幅の絶対値の比較及び選択処理は、連続する複数サンプルの最初のサンプルについて1回だけ比較処理を行い、この最初のサンプルの大小判定の比較結果に基づいて、最初のサンプルに続く1または複数サンプルについては比較することなく選択処理することを特徴としている。
また、請求項2に記載された発明は、請求項1に記載された音声データのミキシング方法において、上記各サンプルの振幅の絶対値の比較及び選択処理は、連続する複数サンプルの最初のサンプルについて1回だけ比較処理を行い、この最初のサンプルの大小判定の比較結果に基づいて、最初のサンプルに続く1または複数サンプルについては比較することなく選択処理することを特徴としている。
請求項3に記載された発明は、複数の参加者からのデジタルサンプリングされた音声データのミキシングシステムとして、複数参加者からの複数の音声データを所定時間毎のサンプルに分割して、該サンプルの振幅の絶対値を比較する比較手段と、このサンプル毎に比較した複数の音声データのサンプルの中から振幅の絶対値が最大となるサンプルの音声データのサンプルを選択する選択手段と、選択された絶対値最大の音声データのサンプルを出力し、選択されなかった音声データのサンプルを破棄する出力手段とからなることを特徴とするものである。
請求項4に記載された発明は、請求項3に記載された音声データのミキシングシステムにおいて、上記各サンプルの振幅の絶対値の比較及び選択手段は、連続する複数サンプルの最初のサンプルについて1回だけ比較処理を行い、この最初のサンプルの大小判定の比較結果に基づいて、最初のサンプルに続く1または複数サンプルについては比較することなく選択処理することを特徴としている。
請求項4に記載された発明は、請求項3に記載された音声データのミキシングシステムにおいて、上記各サンプルの振幅の絶対値の比較及び選択手段は、連続する複数サンプルの最初のサンプルについて1回だけ比較処理を行い、この最初のサンプルの大小判定の比較結果に基づいて、最初のサンプルに続く1または複数サンプルについては比較することなく選択処理することを特徴としている。
また、請求項5に記載された発明は、複数の参加者からのデジタルサンプリングされた音声データのミキシングシステムを実現するプログラムであって、複数参加者からの複数の音声データを所定時間毎のサンプルに分割して、該サンプルの振幅の絶対値を比較する機能と、このサンプル毎に比較した複数の音声データのサンプルの中から振幅の絶対値が最大となる音声データのサンプルを選択する機能と、この選択された絶対値最大の音声データのサンプルを出力し、選択されなかった音声データのサンプルを破棄する機能を実現するプログラムである。
請求項6に記載された発明においては、請求項5に記載された音声ミキシングシステムの機能を実現するプログラムにおいて、上記各サンプルの振幅の絶対値の比較及び選択機能は、連続する複数サンプルの最初のサンプルについて1回だけ比較処理を行い、この最初のサンプルの大小判定の比較結果に基づいて、最初のサンプルに続く1または複数サンプルについては比較処理を行うことなく選択処理を行うプログラムであることを特徴としている。
請求項6に記載された発明においては、請求項5に記載された音声ミキシングシステムの機能を実現するプログラムにおいて、上記各サンプルの振幅の絶対値の比較及び選択機能は、連続する複数サンプルの最初のサンプルについて1回だけ比較処理を行い、この最初のサンプルの大小判定の比較結果に基づいて、最初のサンプルに続く1または複数サンプルについては比較処理を行うことなく選択処理を行うプログラムであることを特徴としている。
本発明の音声ミキシング方法、音声ミキシングシステム及び音声ミキシングシステムの機能を実現するプログラムによれば、音波の重ね合わせによるミキシングを行う必要はなく、任意の時間における振幅の絶対値の最大のデータを選択することができる。
これは、同時に発生された複数の音声データを比較すると、振幅の絶対値の大きなデータが振幅の絶対値の小さいデータをかき消す作用をもつために、最大の振幅のみを抽出することで、話者の音声が十分に他者に聞き取れることに基づくものである。
すなわち、この音声データの選択は、「小さな音は大きな音に掻き消される」という効果に基づいて、小さい振幅の音声を省いても、ミキシング後の音声品質は聴覚的に問題の無いレベルを実現できるのである。
これは、同時に発生された複数の音声データを比較すると、振幅の絶対値の大きなデータが振幅の絶対値の小さいデータをかき消す作用をもつために、最大の振幅のみを抽出することで、話者の音声が十分に他者に聞き取れることに基づくものである。
すなわち、この音声データの選択は、「小さな音は大きな音に掻き消される」という効果に基づいて、小さい振幅の音声を省いても、ミキシング後の音声品質は聴覚的に問題の無いレベルを実現できるのである。
また、本発明の好ましい形態によれば、全てのサンプルについて比較選択処理を行わないで、複数サンプルに1回の大小関係の比較選択処理の結果に基づいて、その選択された音声データのサンプルに続く複数サンプルを選択処理するようにしている。
このことは、所定時間のサンプルと、次のサンプルとの振幅値の差が小さいことに基づき、連続する複数サンプル全てに対して大小関係を判定するよりも、複数サンプル毎に一回の比較及び大小判定を行い、その結果を次の数サンプルの比較結果として適用するでも、全サンプルを比較したのと変わらない結果をうることができるからである。
この手法によれば、比較を行う計算を複数サンプルに一度行うだけでよいため、高速な音声ミキシングが実現される。つまり、一回の比較処理で複数のサンプルをミキシングすることが可能になるため、必要となる計算量を減らすことができ、高速化が実現する。
このことは、所定時間のサンプルと、次のサンプルとの振幅値の差が小さいことに基づき、連続する複数サンプル全てに対して大小関係を判定するよりも、複数サンプル毎に一回の比較及び大小判定を行い、その結果を次の数サンプルの比較結果として適用するでも、全サンプルを比較したのと変わらない結果をうることができるからである。
この手法によれば、比較を行う計算を複数サンプルに一度行うだけでよいため、高速な音声ミキシングが実現される。つまり、一回の比較処理で複数のサンプルをミキシングすることが可能になるため、必要となる計算量を減らすことができ、高速化が実現する。
上述したように、本発明の音声ミキシング方法、音声ミキシングシステム、及び音声ミキシングのためのプログラムは、人間の聴覚レベルでは問題ないレベルの音質を保ちつつ、従来手法よりも遥かに計算量を少なくしてミキシングを行うことができる。
更に、本発明の好ましい形態によれば、1つのサンプルの音声データの比較結果を複数サンプル(例えば3つ)先のデータまで適用することができる。すなわち、まず1サンプル目を比較し、大きな方を選択する。そして、次の2、3、4サンプル目は、1サンプル目で選択したデータのサンプルを選択するようにする。次に5サンプル目のデータを比較処理し、この5サンプル目の比較結果を適用して、6、7、8番目のデータのサンプルを選択する。Nサンプル目を比較した場合、N+1・N+2・N+3サンプル目はNサンプル目で選択した音声データ側のサンプルを選択する。これを繰り返すことにより、必要となる計算量が4分の1に低減される。
この方法は、一見荒い制御に見えるが、実際はかなりミクロな時間軸での制御であること、かつ会話では全員が同時に発声することは稀であるので、ほとんど問題にならないで話者の声を識別することが可能である。音楽、男声、女声でミキシングを行った場合、全ての音声を容易に聴覚レベルで認識する事が可能であり、高品質な音声ミキシングを実現できる。
以下、本発明の実施の形態の例を図1〜図3に基づいて説明する。
図1は、一般的な多者間の通話システムの概要図を示すものであり、多者間通話サーバ1と複数のユーザ端末(IP電話器)2がネットワーク3に接続されている。
この多者間の通話サービスにおいては、各ユーザが持っているユーザ端末の機能に差があることから、端末が必ず備えている最低限の機能でサービスを提供することが必要となる。すなわち、電話には、対象に対して電話をかける「シグナリング」機能と、シグナリングにより相手と通話できることが確定した後に音声を送信する「全2重音声伝送」機能が必要となる。ここで全2重とは、自身の音声と相手の音声を同時に扱う事を意味している。
この多者間の通話サービスにおいては、各ユーザが持っているユーザ端末の機能に差があることから、端末が必ず備えている最低限の機能でサービスを提供することが必要となる。すなわち、電話には、対象に対して電話をかける「シグナリング」機能と、シグナリングにより相手と通話できることが確定した後に音声を送信する「全2重音声伝送」機能が必要となる。ここで全2重とは、自身の音声と相手の音声を同時に扱う事を意味している。
ネットワーク3は、IP電話トラフィックのみ伝送する専用網と、インターネットのように電話以外のトラフィックが伝送されている共有回線も含んでおり、シグナリング機能と全2重音声伝送に関するユーザ端末の前提条件から、サーバでは次の流れで処理を行っている。
まず、シグナリング機能面では、サーバ1が、多者間通話を行うグループに対してユニークなIDを割り当て、ユーザAはそのIDに対して電話をかける。ここで、ユーザAは、多者間通話サーバ1と1対1セッションを張っているだけであるが、サーバ1は他のユーザB、C、Dともセッションを張っているため、見かけ上、ユーザA、B、C、Dはサーバ1を介して仮想的にマルチセッションを張っているといえる。
次に、電話に必要な全2重音声伝送機能面であるが、各ユーザから送信された音声を適切にミキシングし、複数の音声ストリームを一つのストリームに圧縮し、送出することが必要とされる。この全2重音声伝送機能を用いて複数の音声ストリームのやり取りが可能になる。
図2は、多者間通話サーバ1の機能ブロックを説明するための概略図である。11は電話をかける際の制御を司るシグナリングモジュール、12は音声データを受信する場合の制御を司るデータ受信モジュール、13は参加者情報管理データベース操作モジュール、14は参加者情報管理データベース、15は正当性のあるパケットとして判別されたデータを格納する受信データキューである。
また、16は受信データキュー15に保持されている同一グループのキューの時刻同期制御モジュール、17は時刻同期制御モジュール16で同期されたパケットをミキシングする音声ミキシングモジュール、18はミキシング済みのパケットにストリーム制御プロトコルに合わせた形式になるよう処理し、送信するデータ送信モジュールである。
なお、19はシグナリングパケット、20はサーバが受信する音声パケット、21はサーバが送信するミキシング済み音声パケットである。
また、16は受信データキュー15に保持されている同一グループのキューの時刻同期制御モジュール、17は時刻同期制御モジュール16で同期されたパケットをミキシングする音声ミキシングモジュール、18はミキシング済みのパケットにストリーム制御プロトコルに合わせた形式になるよう処理し、送信するデータ送信モジュールである。
なお、19はシグナリングパケット、20はサーバが受信する音声パケット、21はサーバが送信するミキシング済み音声パケットである。
シグナリングモジュール11は、ユーザからのシグナリングデータ処理するためのモジュールであって、シグナリングデータを内包するパケット19を受信し、シグナリングデータの内容から、多者間通話サービスを提供するために必要となる情報を取得するためのものである。そして、シグナリングモジュール11は、この取得した情報から、多者間通話サーバ1が多者間通話サービスを提供可能であるか否かを判別し応答する。また、シグナリングモジュール11はすでに開始済みのサービスを停止するためのシグナリングの処理も行っている。
データ受信モジュール12は、ユーザからの音声パケットを受信するためのモジュールであり、このモジュールにおいて受信したデータの正当性がチェックされる。例えば、IP電話では音声の送受信に関してストリーム制御プロトコル(RTP)を用い、パケットのロスや遅延を検出している。この正当性チェックは、パケットがロスしたり、遅れすぎたパケットを検出したりした場合にその制御や破棄を行うものである。
参加者情報管理データベース操作モジュール13は、シグナリングモジュール11で処理された内容を参加者情報管理データベース14に反映させるためのモジュールであり、シグナリングモジュール11からの命令で動作し、参加者情報管理データベース14に対し、参加の場合は新規にエントリを追加し、脱退の場合は参加者情報管理データベース14に存在するエントリを探して削除する。参加者情報管理データベース14には、参加者のネットワーク的な位置情報(IPアドレス等)や、参加しているグループのID、送信状況等が格納されている。
データ受信モジュール12において正当性のあるパケットとして判別されたデータを格納する受信データキュー15は、新しいパケットをキュー15の最後尾に格納し、キュー15から取り出す場合は先頭から取り出していく。一人のユーザにつき独立した1つのキューを割り当てており、この点で受信データキュー15は複数のキューの集合体であるといえる。
時刻同期制御モジュール16は、受信データキュー15に保持されている、同一グループのキューの時刻同期制御を行うものであり、この時刻同期制御モジュール16における同期制御は、パケット交換網で発生する、データの到着時間に一貫性の無い「揺らぎ」という現象を回避するために必要とされる。この同期制御が行われないと、揺らぎの影響により、参加者全員の音声は同時に到着することが無く、データの到着順が異なってしまう。このため、ミキシング対象のデータが実時間的に同時に送出された音声であるかを判別し、時間を合わせる時刻同期が必要となる。同期を行わないで各送話者からの音声データの到着時刻がずれると、ミキシングを行うべきでないもの同士をミキシングすることになり、その結果がノイズとなって音声品質が悪くなる。また、同時に発生された音声パケットのうちの一方の到着が遅れた場合は、その一方の音声データの処理が、先に到着した他方の音声パケットの次に処理すべき他方のデータと一緒に処理されるため、処理後のミキシング音声に間延びが現れることになり、音声品質に悪影響を及ぼすことになる。
時刻同期後の音声パケットの音声ミキシングモジュール17については、後述されるように、図6〜図9に示すシステム構成図、波形図、フローチャートを用いて詳細に説明される。
時刻同期後の音声パケットの音声ミキシングモジュール17については、後述されるように、図6〜図9に示すシステム構成図、波形図、フローチャートを用いて詳細に説明される。
データ送信モジュール18は、ミキシング済みのパケットをストリーム制御プロトコルに合わせた形式になるよう処理し、送信するモジュールであり、ここでの送信状況は参加者情報管理データベース14で一括管理しているため、参加者情報管理データベース14から送信状況に関する情報を取得し、その情報を元にパケットを整形し、整形されたパケット21がユーザに送信される。
図3は、図2の20、21で送受信されるRTPをストリーム制御プロトコルとする音声パケットのフォーマットを示したものである。31は、RTPで定義された音声ストリームの何番目のパケットであるかを示すシーケンス番号であり、パケットが一つ送信されるたびに1ずつ増加する。そのため、最後に受信した音声パケットのシーケンス番号との差が1にならない場合は、パケットロスが発生したと判断される。
32はRTPで定義されているタイムスタンプである。タイムスタンプ32は時間情報ではなく、送信されたデータのデータサイズで表現されている。このタイムスタンプ32は主として再生タイミングの制御に用いられる。33は、RTPで定義されているストリームの識別子であり、同一ストリームではこの識別子は常に同じになる。34は、ユーザ端末で音声をデジタル化したペイロード(音声データ)である。
図4は、参加者情報管理データベース14における時刻同期に関係するデータ構造を示すものである。
41には、多者間通話の1グループの通話に、任意の時間に参加している参加者数が保持される。42には、参加者情報を保持する配列のアドレスが格納される。この参加者情報を保持する配列のアドレス42の内部構造は、参加者情報保持テーブル43に示されている。このように、参加者情報保持テーブル43には、IDキーとそれに対応する指定されたアドレスとが保持されている。このID番号と対応する情報のアドレスの詳細はユーザ固有の情報テーブル44に示されている。
すなわち、テーブル44には、ユーザのID番号45に対応して、ユーザ固有の受信データキューの先頭アドレス46と、ユーザ固有の受信データキューの最後尾アドレス47と、最初に受信した音声パケットの受信時刻(T0)48と、最初に受信した音声パケットのタイムスタンプ(TS0)49とが格納されている。
41には、多者間通話の1グループの通話に、任意の時間に参加している参加者数が保持される。42には、参加者情報を保持する配列のアドレスが格納される。この参加者情報を保持する配列のアドレス42の内部構造は、参加者情報保持テーブル43に示されている。このように、参加者情報保持テーブル43には、IDキーとそれに対応する指定されたアドレスとが保持されている。このID番号と対応する情報のアドレスの詳細はユーザ固有の情報テーブル44に示されている。
すなわち、テーブル44には、ユーザのID番号45に対応して、ユーザ固有の受信データキューの先頭アドレス46と、ユーザ固有の受信データキューの最後尾アドレス47と、最初に受信した音声パケットの受信時刻(T0)48と、最初に受信した音声パケットのタイムスタンプ(TS0)49とが格納されている。
同時刻処理は、ユーザ固有の受信データキューの先頭アドレス46で指定されているユーザに対して行われる。また、ユーザ固有の受信データキューの最後尾アドレス47には、図2で説明したメディアデータを処理するブロックであるデータ受信モジュール12で処理された音声パケットのアドレスが格納される。また、最初に受信した音声パケットの受信時刻(T0)48は、多者間通話サーバ1におけるコンピュータ内部時計の時間を格納するものであり、この時間をミリ秒以下の制度で保持している。最初に受信した音声パケットのタイムスタンプ(TS0)49は、最初に受信した音声パケットの受信時刻(T0)48とともに、時刻同時処理に用いられる。
次に、図5に基づいて、音声パケットの受信からミキシングして送信するまでの音声パケットの流れにそって、本発明の全体像を説明する。ここでは多者間通話に参加する3人のユーザA、B、Cからの音声データのミキシング処理について説明する。
図5に示すように、音声パケットの受信から音声パケットの送信までの全体システムは、複数参加者A、B、Cからの音声パケットデータを受信して、時刻の刻印を行うタイムスタンパ52と、揺らぎの吸収処理を行うバッファ53と、時刻同期処理部54と、データミキシング処理部55と、データ送出処理部56と、これら全体の時間のタイミングを制御する計算機内部時計57とから構成される。計算機内部時計57は、タイムスタンパ52と、時刻同期処理部54において主として利用される。カウンタ58は固定周期、すなわち、音声パケットの1つの時間、例えば20msをカウントしてリセットするカウンタである。
図5に示すように、音声パケットの受信から音声パケットの送信までの全体システムは、複数参加者A、B、Cからの音声パケットデータを受信して、時刻の刻印を行うタイムスタンパ52と、揺らぎの吸収処理を行うバッファ53と、時刻同期処理部54と、データミキシング処理部55と、データ送出処理部56と、これら全体の時間のタイミングを制御する計算機内部時計57とから構成される。計算機内部時計57は、タイムスタンパ52と、時刻同期処理部54において主として利用される。カウンタ58は固定周期、すなわち、音声パケットの1つの時間、例えば20msをカウントしてリセットするカウンタである。
次に、図5の全体システムの動作を説明する。ユーザA、B、Cからの音声パケット51a、51b、51cは、タイムスタンパ部52に供給される。ここで、ユーザA、B、Cから送られてくる音声パケットには、その発生時には同時刻であっても、51a〜51cに図示するように、到達時間にばらつきが生じている。これは、上述したように、送話者側では音声サンプリング、エンコード、パケット化に伴った遅延時間が生じ、あるいは伝送経路中の伝送距離に応じた伝播遅延や経路にあるルータにおけるパケットのキューイング遅延等が生じるからである。
タイムスタンパ部52は、受信した音声パケットのストリームにおける最初の音声パケットの受信時刻T0とタイムスタンプTS0を取得し、受信時刻T0を図4の48に、タイムスタンプTS0を同じく図4の49にそれぞれ格納する。そして、受信した音声パケットの受信データキューの最後尾アドレスを図4の47に格納する。ここで、n番目のタイムスタンプTSnは、受信したデータサイズの累計で表現されるので、例えば、音声パケットのデータサイズが100バイトであれば、n番目のパケットのタイムスタンプTSnは100nバイトとなる。
タイムスタンパ部52でタイムスタンプが付与されたユーザA、B、Cからの音声パケットデータは、揺らぎ吸収バッファ53に送られる。この揺らぎ吸収バッファ53は、図2で示した受信データキュー15において実現されるものであり、受信データキュー15に保持されている音声パケットの録音時間の累計時間と同じ揺らぎを吸収することが可能である。1つの音声パケットあたりの録音時間が20msであるから、キュー15に2つの音声パケットが保持されていれば40msまでの揺らぎを吸収することができる。
揺らぎ吸収処理が行われた各音声データは、時刻同期処理部54に送られる。時刻同期処理部54は、20ms周期で動作するカウンタ58によってその処理が開始される。この同期処理は、サーバ内で動作する計算機内部時計57で取得した現在時刻Timeが、数式(1)を満たすかどうかを判別することによって行われる。すなわち、比較すべき音声パケットのタイムスタンプTSnが、図4の48に格納されている最初に受信した音声パケットの受信時刻T0、同じく図4の49に格納されている最初に受信した音声パケットのタイムスタンプTS0、連続するRTPパケットのタイムスタンプの増加量TSI(例えば100バイト)、音声パケットの送信周期でありかつ1つの音声パケットにおける録音時間ST(例えば20ms)を固定値とした場合に、サーバの動作するコンピュータの内部時計57で取得した現在時刻Timeが数式(1)を満たすか否かの判断によって、処理可能な音声パケットかどうかが判断される。
Time≧T0+{( TSn−TS0)/TSI}×ST (1)
Time≧T0+{( TSn−TS0)/TSI}×ST (1)
ここで、(TSn−TS0)は、受信した音声パケットの増加バイト数を表すから、{(TSn−TS0)/TSI}は、増加した音声パケット数を表し、この値に1つの音声パケットにおける録音時間ST(例えば20ms)を掛け、最初の受信時刻を足した右辺の値は、タイムスタンプTSnが付された音声パケットが到着する時間を示している。
したがって、数1で示す不等式を満たす場合は、処理されるべき音声パケットの到着時間が実際の時刻(Time)より小さいことを意味するから、このパケットは処理可能であると判別される。
したがって、数1で示す不等式を満たす場合は、処理されるべき音声パケットの到着時間が実際の時刻(Time)より小さいことを意味するから、このパケットは処理可能であると判別される。
ここで、数式(1)に示す不等式が成立しなくなったとき、すなわち、数式(1)の右辺(タイムスタンプTSnが付された音声パケットの処理時間)が左辺の現在時刻(Time)よりも大きいときは、タイムスタンプTSnが付された音声パケットを処理する時間がまだ来ていないことを意味している。この場合には、処理すべきパケットは次の処理時間がくるまで、受信データキュー15(図2)の先頭に戻って処理時間が来るのを待つことになる。
また、数式(1)に示す不等式を満たすだけでは、かなり遅れて到着した音声パケットを処理可能として判断することになる。例えば、現在時刻(Time)よりも1秒以上遅れて到着した音声パケットを処理してしまうことになって、処理後の音声が極めて聞き苦しいものとなる。そこで、任意設定の待機時間閾値(JT)(例えば、パケット2個分の遅延時間40msを有する「揺らぎ吸収バッファサイズ」とする。)を設け、数式(2)を満たす場合、すなわち、現在時刻(Time)とタイムスタンプTSnが付された音声パケットの処理時刻との差が、待機時間閾値(JT)より大きい場合は、無視できない遅延が発生したと判断して、その音声パケットを処理しないようする。つまり、数式(1)に示す不等式を満たしても、数式(2)の条件を満たす音声パケットは破棄するようにしている。
Time−(T0+{( TSn−TS0)/TSI}×ST)>JT (2)
Time−(T0+{( TSn−TS0)/TSI}×ST)>JT (2)
以上の処理によって、時刻同期処理部54で処理され、同期されていると判断された時刻同期処理済み音声パケットは、データミキシング処理部55に送られ、ここで複数参加者からの音声パケットデータのミキシングが行われて、データ送出処理部56を介して、自分以外の他の参加者に送信される。
次に、図6〜図9に基づいて、本発明のミキシング処理について詳細に説明する。図6はミキシング処理の機能ブロック図であり、図7はその説明のための波形図である。
図6は、ミキシング処理する音声パケットデータが2つの場合を示している。ミキシング対象データ61aと61bは比較処理を行うサンプルの組を取得するサンプル取得ブロック62に供給される。次に、サンプル取得ブロック62で取得されたサンプルの先頭のサンプルが絶対値計算ブロック63に供給され、ここで取得されたサンプルの振幅値の絶対値が計算される。絶対値計算ブロック63でサンプルの振幅値は、大小比較ブロック64に供給され、ここで絶対値の大小が比較される。
図6は、ミキシング処理する音声パケットデータが2つの場合を示している。ミキシング対象データ61aと61bは比較処理を行うサンプルの組を取得するサンプル取得ブロック62に供給される。次に、サンプル取得ブロック62で取得されたサンプルの先頭のサンプルが絶対値計算ブロック63に供給され、ここで取得されたサンプルの振幅値の絶対値が計算される。絶対値計算ブロック63でサンプルの振幅値は、大小比較ブロック64に供給され、ここで絶対値の大小が比較される。
続いて、大小比較ブロック64で比較されたサンプルの振幅の絶対値のうち大きいほうの絶対値のサンプルがサンプル選択ブロック65で選択され、サンプル数管理ブロック66に供給される。サンプル数管理ブロック66は、何個ごとのサンプルについて選択処理を行うかを予め設定して処理管理するブロックであり、例えば、各音声パケットの連続するm個(例えば4個)のサンプルのうち最初のサンプルのみを、大小比較ブロック64に供給し、続く(m−1)個のサンプルについては、最初のサンプルの比較で大きいと判断された側の音声データのサンプルの振幅絶対値をデータ出力ブロック67に送るためのものである。この場合、続く(m−1)個のサンプルについては、振幅値の絶対値計算ブロック63において絶対値計算がなされるだけで大小比較はおこなわれない。ここで、m=1であれば、全てのサンプルについて、絶対値計算と絶対値の大小比較をおこなうことになることは言うまでもない。
データ出力ブロック67は、ミキシング済みデータ68を図5のデータ送信処理部56に供給する。
データ出力ブロック67は、ミキシング済みデータ68を図5のデータ送信処理部56に供給する。
上述した音声ミキシング処理は、PCM(Pulse Code Modulation)化された音声信号について行われ、ミキシング対象となる音声パケットのサンプル(例えば、サンプリング周波数を8kHzとする。参加者数によっては16kHzや32kHzとすることもできる。)を比較し、比較条件を満たした方を選択することでミキシングが行われる。例えば、8kHzのサンプリングでは、2つの音声ストリームをミキシングする場合、1秒間に8000回の処理を必要とする。また、この処理の回数は参加人数が多くなると、それに比例して大きくなる。
図7は、ユーザから送られる図6に示すミキシング対象データ61a(図7の71)と61b(図7の72)の全てのサンプルについて、大小比較を行う例を示した波形図である。PCM音声は、ビットレートや圧縮方式によりデータ形式が異なるため、詳細な比較条件は違ったものとならざるを得ない。ただ、基本的な概念は、音声データを波形表示した際に、振幅の絶対値70を求め、大きい方のサンプルを選択することである。
図7に示すように、ユーザから送られた音声パケット71と音声パケット72のそれぞれは、サンプルごとに大きいほうが選択され、ミキシングデータ73として出力される。すなわち、音声パケット71の最初のサンプル71aと音声パケット72の最初のサンプル72aとを比較すると、その絶対値はサンプル71aの方が大きいので、サンプル71aがミキシングデータとして選択される。この選択は、見かけ上洗い制御ではあるが、実際に扱っている1サンプル当たりの録音時間は8000分の1秒(8kHzサンプリングの場合)とミクロなレベルの制御となる。
図8は、入力されるミキシング対象データが4つの場合の例であり、その他の処理機能ブロックは図6と同じであるので、同一符号を付し、説明は省略する。本例では4つの例を示しているが、ミキシング対象データの数をいくらにするかは、多者間通話の参加者数によって決まるものであり、通話が可能であれば4以上であってもよいことは言うまでもないことである。
次に、図9のフローチャートに基づいて、本発明のミキシング方法の手順について説明する。最初に、ミキシングを行うための音声パケットデータの入力が行われる(ステップS81)。続いて、図6(図8も同じである)のサンプル数管理ブロック66における処理中のサンプルの順番を表す番号“i”を“1”に初期化する(ステップS82)。次に、図6のサンプル取得ブロック62において、各入力データの“i”番目のサンプルからK個のサンプルの組を取得する(ステップS83)。ここで、Kは、同時に処理するサンプル数であり、固定値である。
次に、図6に示す絶対値計算ブロック63において、各サンプルの組から“i”番目のサンプルの振幅値の絶対値が計算され(ステップS84)、計算された各々の絶対値は大小比較ブロック64においてその大小関係が比較され、最大の絶対値を持つものが選択される(ステップS85)。続いて、図6のサンプル選択ブロック65において、振幅値が最大となったサンプルの組の“i”番目から“(i+K)−1”番目までのK個の出力データが出力サンプルとして選択される(ステップS86)。
次に、サンプル数管理ブロック66において、“i”を“i+K”に更新する。例えば“i”が“1”で“K”が“4”であれば、次に最大値を比較するサンプルは“4+1”番目、つまり“5”番目のサンプルになる。ここで、全てのサンプルについて大小関係を判断する場合では、“K”が“1”となることはいうまでもない。
サンプル処理の順番管理用の番号“i”が更新されると、続いて“i”が入力データの最後に達したか否かが判断される(ステップS88)。ここで、入力データがまだあるとき、すなわち最後まで処理されていないときは、ステップS83に戻り、各入力データから再び更新された“i”番目のデータからK個のサンプルを取得する。判断ステップS88で“i”が入力データの最後に達したと判断されると、結果を出力して処理を終了する(ステップS89)。
サンプル処理の順番管理用の番号“i”が更新されると、続いて“i”が入力データの最後に達したか否かが判断される(ステップS88)。ここで、入力データがまだあるとき、すなわち最後まで処理されていないときは、ステップS83に戻り、各入力データから再び更新された“i”番目のデータからK個のサンプルを取得する。判断ステップS88で“i”が入力データの最後に達したと判断されると、結果を出力して処理を終了する(ステップS89)。
以上、図6〜図9に基づいて、本発明のミキシング方法及びそのシステムについて説明した。本発明によれば、1回の処理にかかる処理時間は、データに四則演算を行う波形の重ねあわせよりも少ないため、処理時間の低減が可能である。また、本発明の比較ミキシングによれば、複数(特に、3つ以上)のストリームを同時にミキシングする場合には、さらに処理時間の低減を行うことが可能である。
すなわち、波形の重ねあわせで3つのデータをミキシングする場合、まず2つのデータをミキシングし、その結果を残りのデータとミキシングする必要がある。したがって、ミキシングテータ数を8000バイト、ミキシング対象データを“N”とすると、必要計算数は8000*”N−1”となる。
すなわち、波形の重ねあわせで3つのデータをミキシングする場合、まず2つのデータをミキシングし、その結果を残りのデータとミキシングする必要がある。したがって、ミキシングテータ数を8000バイト、ミキシング対象データを“N”とすると、必要計算数は8000*”N−1”となる。
これに対して、本発明の比較ミキシング方法によれば、例えば、3つのミキシング対象データA、B、Cをミキシングする場合、A、B、C全てのデータに対して、同時に比較演算を行って絶対値最大のものを選択するので、必要計算数はミキシング対象データの数にかかわらず常に8000回/秒になる。
また、音声データの比較でミキシングすることで、さらに高速化を図ることができる。PCM音声には、Differential PCMと呼ばれる圧縮方式がある。これは、連続するサンプル間の差が小さいことを利用し、連続する2つのサンプルの差を取ることで圧縮する手法である。この概念を応用することにより、大小比較を行うミキシングでは、大小比較を行ったサンプルの次のサンプルへも、高確率で結果を適用することができる。
仮に3つ先のサンプルまで比較結果を適用した場合、まず1サンプル目を比較し、大きな方を選択。次の2・3・4サンプル目は、1サンプル目で選択したデータのサンプルを選択するようにする。次に5サンプル目のデータを比較処理し、6・7・8サンプル目のデータは5サンプル目の比較処理で選択したデータのサンプルを選択する。Nサンプル目を比較した場合、N+1・N+2・N+3サンプル目はNサンプル目で選択した側の音声データのサンプルを比較することなく選択する。これを繰り返すことにより、必要となる計算数は2000回/秒となり、計算量が4分の1に低減される。
この方法は、一見荒い制御に見えるが、実際はかなりミクロな時間軸での制御であること、かつ会話では全員が同時に発声することは稀であるので、ほとんど問題にならないで話者の声を識別することが可能である。音楽、男声、女声でミキシングを行った場合、全ての音声を容易に聴覚レベルで認識する事が可能であり、高品質な音声ミキシングを実現できる。
本発明の音声ミキシング方法、音声ミキシングシステム及び音声ミキシングのためのプログラムは、応用サービスとして多人数が同時にコミュニケーションを行うことができる多者間通話システムに用いるに好適である。
1・・・多者間通話サーバ、2・・・IP電話機 、3・・・ネットワーク(インターネット、IP網等)、11・・・シグナリングモジュール、12・・・データ受信モジュール、13・・・参加者情報管理データベース操作モジュール、14・・・参加者情報管理データベース、15・・・受信データキュー、16・・・時刻同期制御モジュール、17・・・音声ミキシングモジュール、18・・・データ送信モジュール、19・・・シグナリングパケット、20・・・音声パケット(サーバが受信)、21・・・音声パケット(ミキシング済みでサーバが送信)、52・・・タイムスタンパ部、53・・・揺らぎ吸収バッファ、54・・・時刻同期処理部、55・・・データミキシング処理部、56・・・データ送信処理部、61a〜61d・・・ミキシング対象データ、62・・・サンプル取得ブロック、63・・・絶対値計算ブロック、64・・・大小比較ブロック、65・・・サンプル選択ブロック、66・・・サンプル数管理ブロック、67・・・データ出力ブロック、68・・・ミキシング済データ
Claims (6)
- デジタルサンプリングされた複数の音声データのミキシング方法であって、前記複数の音声データを所定時間毎のサンプルに分割して、該サンプルの振幅の絶対値を比較するステップと、前記比較した複数の音声データのサンプルの中から前記振幅の絶対値が最大となる音声データのサンプルを選択するステップと、前記選択された絶対値最大の音声データのサンプルを出力し、選択されなかった音声データのサンプルを破棄するステップとからなることを特徴とする音声ミキシング方法。
- 前記各サンプルの振幅の絶対値の比較及び選択処理は、連続する複数サンプルの最初のサンプルについて一回だけ行い、前記最初のサンプルの大小判定の比較結果に基づいて、前記最初のサンプルに続く1または複数サンプルについては比較することなく選択処理することを特徴とする請求項1に記載の音声ミキシング方法。
- デジタルサンプリングされた複数の音声データのミキシングシステムであって、前記複数の音声データを所定時間毎のサンプルに分割して、該サンプルの振幅の絶対値を比較する比較手段と、前記比較した複数の音声データのサンプルの中から前記振幅の絶対値が最大となる音声データのサンプルを選択する選択手段と、前記選択された絶対値最大の音声データのサンプルを出力し、選択されなかった音声データのサンプルを破棄する出力手段とからなることを特徴とする音声ミキシングシステム。
- 前記各サンプルの振幅の絶対値の比較手段及び選択手段は、連続する複数サンプルの最初のサンプルについて1回だけ比較処理を行い、前記最初のサンプルの大小判定の比較結果に基づいて、前記最初のサンプルに続く1または複数サンプルを比較することなく選択処理することを特徴とする請求項3に記載の音声ミキシングシステム。
- デジタルサンプリングされた複数の音声データのミキシングシステムを実現するプログラムであって、前記複数の音声データを所定時間毎のサンプルに分割して、該サンプルの振幅の絶対値を比較する機能と、前記比較した複数の音声データのサンプルの中から前記振幅の絶対値が最大となる音声データのサンプルを選択する機能と、前記選択された絶対値最大の音声データのサンプルを出力し、選択されなかった音声データを破棄する機能を実現するための音声ミキシング処理のためのプログラム。
- 前記各サンプルの振幅の絶対値の比較及び選択機能を実現するプログラムは、連続する複数サンプルの最初のサンプルについて1回だけ比較処理を行い、前記最初のサンプルの大小判定の比較結果に基づいて、前記最初のサンプルに続く1または複数サンプルを比較することなく選択処理する機能を実現するものであることを特徴とする請求項5に記載の音声ミキシング処理のためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003384022A JP2005151044A (ja) | 2003-11-13 | 2003-11-13 | 音声ミキシング方法、音声ミキシングシステム及び音声ミキシングのためのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003384022A JP2005151044A (ja) | 2003-11-13 | 2003-11-13 | 音声ミキシング方法、音声ミキシングシステム及び音声ミキシングのためのプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005151044A true JP2005151044A (ja) | 2005-06-09 |
Family
ID=34692577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003384022A Pending JP2005151044A (ja) | 2003-11-13 | 2003-11-13 | 音声ミキシング方法、音声ミキシングシステム及び音声ミキシングのためのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005151044A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008026754A1 (fr) | 2006-08-30 | 2008-03-06 | Nec Corporation | Procédé de mixage vocal, serveur de conférence multipoint utilisant le procédé et programme |
JP2018515009A (ja) * | 2015-04-05 | 2018-06-07 | クアルコム,インコーポレイテッド | カンファレンスオーディオ管理 |
US20220321375A1 (en) * | 2021-03-31 | 2022-10-06 | Snap Inc. | Mixing participant audio from multiple rooms within a virtual conferencing system |
-
2003
- 2003-11-13 JP JP2003384022A patent/JP2005151044A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008026754A1 (fr) | 2006-08-30 | 2008-03-06 | Nec Corporation | Procédé de mixage vocal, serveur de conférence multipoint utilisant le procédé et programme |
US8255206B2 (en) | 2006-08-30 | 2012-08-28 | Nec Corporation | Voice mixing method and multipoint conference server and program using the same method |
JP2018515009A (ja) * | 2015-04-05 | 2018-06-07 | クアルコム,インコーポレイテッド | カンファレンスオーディオ管理 |
US11910344B2 (en) | 2015-04-05 | 2024-02-20 | Qualcomm Incorporated | Conference audio management |
US20220321375A1 (en) * | 2021-03-31 | 2022-10-06 | Snap Inc. | Mixing participant audio from multiple rooms within a virtual conferencing system |
US11792031B2 (en) * | 2021-03-31 | 2023-10-17 | Snap Inc. | Mixing participant audio from multiple rooms within a virtual conferencing system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8169937B2 (en) | Managing a packet switched conference call | |
US6940826B1 (en) | Apparatus and method for packet-based media communications | |
US6418125B1 (en) | Unified mixing, speaker selection, and jitter buffer management for multi-speaker packet audio systems | |
US7656861B2 (en) | Method and apparatus for interleaving text and media in a real-time transport session | |
US5530699A (en) | Method for distributed voice conferencing in a fast packet network | |
EP1942646A2 (en) | Multimedia conferencing method and signal | |
US7978688B2 (en) | System and method for converting packet payload size | |
US5127001A (en) | Conference call arrangement for distributed network | |
CN1777152B (zh) | 媒体网关和服务器之间的数据传输 | |
KR20200009556A (ko) | 통화 음성으로부터 변환된 텍스트를 관리하는 장치 및 방법 | |
US7769054B2 (en) | Method of conducting a communications session using incorrect timestamps | |
CN103500580A (zh) | 混音处理方法及系统 | |
Rudkin et al. | Real-time applications on the Internet | |
CN101502043B (zh) | 用于实施语音会议的方法和语音会议系统 | |
US7058026B1 (en) | Internet teleconferencing | |
US20030174657A1 (en) | Method, system and computer program product for voice active packet switching for IP based audio conferencing | |
JP2005151044A (ja) | 音声ミキシング方法、音声ミキシングシステム及び音声ミキシングのためのプログラム | |
JP2003023499A (ja) | 会議サーバ装置および会議システム | |
JP4644813B2 (ja) | 多者間通話システム、多者間通話システムにおける通話端末および通話サーバ、多者間通話方法 | |
JP2005159570A (ja) | 複数ストリームのリアルタイム同期方法及び同期システム並びにそれを利用した多者間通話システム | |
Huang et al. | IDRS: an interactive digital radio station over Internet | |
JPH06252863A (ja) | ステレオ音声伝送装置 | |
JP2010093328A (ja) | 音声信号通信システム、音声合成装置、音声合成処理方法、音声合成処理プログラム、並びに該プログラムを格納した記録媒体 | |
EP1323286A2 (en) | Packet-based conferencing | |
Lee et al. | Internet Telephony Gateway Server-Software Design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060525 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080514 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080520 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080924 |