JP6476768B2 - Voice processing apparatus, program and method - Google Patents
Voice processing apparatus, program and method Download PDFInfo
- Publication number
- JP6476768B2 JP6476768B2 JP2014227163A JP2014227163A JP6476768B2 JP 6476768 B2 JP6476768 B2 JP 6476768B2 JP 2014227163 A JP2014227163 A JP 2014227163A JP 2014227163 A JP2014227163 A JP 2014227163A JP 6476768 B2 JP6476768 B2 JP 6476768B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- data
- speech data
- processing
- synthetic speech
- 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.)
- Active
Links
Images
Landscapes
- Circuit For Audible Band Transducer (AREA)
- Telephonic Communication Services (AREA)
Description
この発明は、音声処理装置、プログラム及び方法に関し、例えば、多地点間をネットワーク接続して会議環境を提供する会議システムを構成する会議サーバ(例えば、MCU(Multipoint Control Unit等の装置)の音声ミキシング処理に適用し得る。 The present invention relates to an audio processing device, program, and method, and, for example, audio mixing of a conference server (for example, a device such as an MCU (Multipoint Control Unit)) configuring a conference system that provides a conference environment by connecting multiple points via a network It can be applied to processing.
従来、多地点間をネットワーク接続して会議環境を提供する会議システムにおいて、多数の拠点間の音声をミキシングする処理には、通常、専用ハードウェアが用いられる。 Conventionally, in a conference system that provides a conference environment by connecting multiple points on a network, dedicated hardware is usually used for processing for mixing voices between multiple locations.
ところで、従来の会議システムの音声ミキシング処理を行う装置では、ITU−T G.729などの高圧縮の符号化方式を用いると、デコーダおよびエンコーダの処理負荷が大きくなり、ミキシング可能なチャネル数が制限されるという課題がある。さらに、近年、ネットワーク設備に関する、コスト低減および維持管理の観点から、専用ハードを使用せずに、汎用サーバ上にソフトウェア的にミキシング機能を実現することが求められている。 By the way, in an apparatus for performing audio mixing processing of a conventional conference system, ITU-T G. When a high compression coding method such as 729 is used, the processing load on the decoder and encoder increases, and the number of channels that can be mixed is limited. Furthermore, in recent years, from the viewpoint of cost reduction and maintenance regarding the network equipment, it is required to realize the mixing function as software on a general-purpose server without using a dedicated hardware.
このような課題を解決するための従来技術として特許文献1の記載技術がある。
As a prior art for solving such a subject, there is a description art of
特許文献1には、複数の入出力音声データをミキシングする通信ブロックを複数と、中央ミキサを用いることにより、ミキシング演算処理の負荷を軽減し、多地点の音声ミキシングを実現することについて記載されている。
一般的に汎用サーバは、複数のCPUを搭載しており、各CPUは複数のCPUコアで構成されているが、特許文献1の装置における中央ミキサを汎用サーバ上にソフトウェア的に実装する場合、1つのCPUコアの処理能力が、メディア処理スレッド処理の性能限界となってしまう。例えば、12コア(2CPU×6コア)のサーバの場合、CPU全体の1/12の処理能力でミキシング可能なチャネル数が制限されてしまう。
Generally, a general-purpose server mounts a plurality of CPUs, and each CPU is configured of a plurality of CPU cores. When the central mixer in the device of
そのため、低コストでより多くの音声チャネルについてソフトウェア的にミキシング処理可能な音声処理装置、プログラム及び方法が望まれている。 Therefore, there is a need for an audio processing apparatus, program and method that can perform software mixing with low cost and more audio channels.
第1の本発明の音声処理装置は、(1)複数の音声処理手段を備え、(1−1)それぞれの上記音声処理手段は、(1−2)時系列ごとの受信音に基づいた受信音データを受信する複数の音信号受信手段と、(1−3)上記複数の音信号受信手段が受信した受信音データを合成して第1の合成音声データを生成する第1の合成手段と、(1−4)第1の合成音声データを保持するバッファ手段と、(1−5)他の上記音声処理手段のそれぞれで生成された第1の合成音声データを合成して第2の合成音声データを生成する第2の合成手段と、(1−6)送信先ごとに、複数の上記音信号受信手段が受信した受信音データから当該送信先に係る受信音データを除外した音声データと上記第2の合成音声データとを合成した送信音データを生成する第3の合成手段とを有し、(1−7)上記バッファ手段は、1つの時系列の第1の合成音声データを保持する複数のバッファ部を循環的に配列した循環バッファに、時系列順に第1の合成音声データを記憶させ、(1−8)上記バッファ手段は、上記循環バッファに、所定数の第1の合成音声データを保持した後に、上記循環バッファで保持している第1の合成音声データの出力を開始することを特徴とする。 The voice processing apparatus according to the first aspect of the present invention comprises (1) a plurality of voice processing means, and (1-1) each of the voice processing means comprises (1-2) reception based on received sound for each time series A plurality of sound signal reception means for receiving sound data; and (1-3) a first synthesis means for synthesizing the reception sound data received by the plurality of sound signal reception means to generate first synthesized speech data. , (1-4) buffer means for holding the first synthetic speech data, and (1-5) the first synthetic speech data generated by each of the other speech processing means are synthesized to produce a second synthesis (2-6) voice data obtained by excluding the received sound data relating to the transmission destination from the received sound data received by the plurality of sound signal receiving means for each transmission destination; Generating transmission sound data synthesized with the second synthetic speech data Have a third combining means (1-7) said buffer means, the circular buffer having a plurality of buffer portion is cyclically arranged to hold the first of the synthesized speech data of one time series, time series The first synthetic speech data is stored in order, and (1-8) the buffer means holds the predetermined number of first synthetic speech data in the circulation buffer, and then holds the first synthetic speech data in the circulation buffer. Starting to output the synthesized speech data .
第2の本発明の音声処理プログラムは、(1)コンピュータを複数の音声処理手段として機能させ、(2)それぞれの上記音声処理手段は、(2−1)時系列ごとの受信音に基づいた受信音データを受信する複数の音信号受信手段と、(2−2)上記複数の音信号受信手段が受信した受信音データを合成して第1の合成音声データを生成する第1の合成手段と、(2−3)第1の合成音声データを保持するバッファ手段と、(2−4)他の上記音声処理手段のそれぞれで生成された第1の合成音声データを合成して第2の合成音声データを生成する第2の合成手段と、(2−5)送信先ごとに、複数の上記音信号受信手段が受信した受信音データから当該送信先に係る受信音データを除外した音声データと上記第2の合成音声データとを合成した送信音データを生成する第3の合成手段とを有し、(2−6)上記バッファ手段は、1つの時系列の第1の合成音声データを保持する複数のバッファ部を循環的に配列した循環バッファに、時系列順に第1の合成音声データを記憶させ、(2−7)上記バッファ手段は、上記循環バッファに、所定数の第1の合成音声データを保持した後に、上記循環バッファで保持している第1の合成音声データの出力を開始することを特徴とする。 The voice processing program according to the second aspect of the present invention makes (1) the computer function as a plurality of voice processing means, and (2) each of the above voice processing means is based on the received sound for each (2-1) time series. A plurality of sound signal receiving means for receiving the reception sound data; and (2-2) a first synthesis means for synthesizing the reception sound data received by the plurality of sound signal reception means to generate a first synthesized speech data And (2-3) buffer means for holding the first synthetic speech data, and (2-4) the first synthetic speech data generated by the other speech processing means, respectively, (2-5 ) voice data obtained by removing received sound data relating to the transmission destination from received sound data received by a plurality of the above-mentioned sound signal receiving means for each transmission destination; And the above second synthetic speech data Have a third synthesizing means for generating a transmitted sound data, (2-6) the buffer means, cyclically arranged a plurality of buffer portion for holding the first synthesized speech data of one time series The first synthetic speech data is stored in chronological order in the circular buffer, and (2-7) the buffer means holds the predetermined number of first synthetic speech data in the circular buffer, and Starting output of the first synthetic speech data held in
第3の本発明は音声処理装置が実行する音声処理方法において、(1)複数の音声処理手段を備え、(2)それぞれの音声処理手段は、複数の音信号受信手段、第1の合成手段、バッファ手段、第2の合成手段、及び第3の合成手段を備え、(3)それぞれの上記音信号受信手段は、時系列ごとの受信音に基づいた受信音データを受信し、(4)上記第1の合成手段は、上記複数の音信号受信手段が受信した受信音データを合成して第1の合成音声データを生成し、(5)上記バッファ手段は、第1の合成音声データを保持し、(6)上記第2の合成手段は、他の上記音声処理手段のそれぞれで生成された第1の合成音声データを合成して第2の合成音声データを生成し、(7)上記第3の合成手段は、送信先ごとに、複数の上記音信号受信手段が受信した受信音データから当該送信先に係る受信音データを除外した音声データと上記第2の合成音声データとを合成した送信音データを生成させ、(8)上記バッファ手段は、1つの時系列の第1の合成音声データを保持する複数のバッファ部を循環的に配列した循環バッファに、時系列順に第1の合成音声データを記憶させ、(9)上記バッファ手段は、上記循環バッファに、所定数の第1の合成音声データを保持した後に、上記循環バッファで保持している第1の合成音声データの出力を開始することを特徴とする。 A third aspect of the present invention is the speech processing method executed by the speech processing apparatus, comprising (1) a plurality of speech processing means, and (2) each speech processing means comprising a plurality of sound signal receiving means, a first synthesizing means , The buffer means, the second combining means, and the third combining means, (3) each of the sound signal receiving means receives the received sound data based on the received sound for each time series, (4) The first synthesizing means synthesizes the received sound data received by the plurality of sound signal receiving means to generate first synthesized speech data, and (5) the buffer means generates the first synthesized speech data. (6) the second synthesizing unit synthesizes the first synthesized speech data generated by each of the other speech processing units to generate second synthesized speech data; (7) the above The third combining means receives a plurality of the above-mentioned sound signals for each transmission destination. Stage was that generate transmitted sound data obtained by synthesizing the audio data and the second synthesized speech data excluding the received sound data related to the destination from the received sound data received, (8) the buffer means, one The first synthetic speech data is stored in chronological order in a circular buffer in which a plurality of buffer units for holding the first synthetic speech data in time series are cyclically arranged, and (9) the buffer means comprises the circular buffer The present invention is characterized in that, after holding a predetermined number of first synthetic speech data, output of the first synthetic speech data held by the circulating buffer is started .
本発明によれば、低コストでより多くの音声チャネルについてソフトウェア的にミキシング処理可能な音声処理装置を提供することができる。 According to the present invention, it is possible to provide an audio processing apparatus capable of performing software mixing processing for more audio channels at low cost.
(A)第1の実施形態
以下、本発明による音声処理装置、プログラム及び方法の第1の実施形態を、図面を参照しながら詳述する。以下では、本発明の音声処理装置および音声処理プログラムを多地点音声ミキシング装置に適用する例について説明する。
(A) First Embodiment Hereinafter, a first embodiment of a speech processing apparatus, program and method according to the present invention will be described in detail with reference to the drawings. Hereinafter, an example in which the audio processing device and the audio processing program of the present invention are applied to a multipoint audio mixing device will be described.
(A−1)第1の実施形態の構成
図2は、この実施形態の多地点音声ミキシング装置10のハードウェア構成及び接続構成の例について示したブロック図である。
(A-1) Configuration of First Embodiment FIG. 2 is a block diagram showing an example of the hardware configuration and the connection configuration of the multipoint
図2に示すように、多地点音声ミキシング装置10は、N×M台の端末20−1_1〜20−M_N(端末20−1_1、20−1_2、…、20−1_N、20−2_1、20−2_2、…、20−2_N、…20−M_1、20−M_2、…、20−M_N)とネットワーク40を介して接続している。なお、N、Mは、2以上の任意の整数である。また、N×M台の端末20は、多地点音声ミキシング装置10に接続可能な最大の端末20の数であり、多地点音声ミキシング装置10に接続される端末20の数は、N×M台以下であってもよい。
As shown in FIG. 2, the multipoint
ネットワーク40としては例えばIPネットワークを適用することができるが、多地点音声ミキシング装置10と各端末20との間のネットワーク接続構成については限定されないものである。この実施形態では、多地点音声ミキシング装置10と各端末20との間ではIP通信により、音声(会議音声)データのリアルタイム送受信を行うことが可能であるものとする。
For example, an IP network can be applied as the
図3は、端末20の内部構成の例について示したブロック図である。
FIG. 3 is a block diagram showing an example of the internal configuration of the
各端末20は、会議端末(電話端末)として機能するものである。各端末20の具体的な構成は、図3の構成に限定されないものであり、例えば、IP電話機やソフトフォンのアプリケーションをインストールしたPC等を適用することができる。
Each
この実施形態では、端末20は、全て図3のブロック図で示される構成であるものとして以下の説明を行うが、各端末20の具体的な構成は、図3の構成に限定されないものである。例えば、IP電話機や、ソフトフォンとして機能するコンピュータ(例えば、PC,スマートフォン、タブレットPC等にソフトフォンのアプリケーションをインストールしたもの)等を適用することができる。
In this embodiment, the
図3に示す端末20は、通話処理部21、ネットワークインタフェースとしての通信部22、ユーザの音声を捕捉するマイク23、及びユーザに音声出力するスピーカ24を有している。マイク23、及びスピーカ24は、端末20において送受話器として機能するものであり、例えば、電話機やスピーカフォンの受話器やヘッドセット等を適用することができる。
The
通話処理部21は、音声データ/音声信号の処理や呼制御処理等、通話に係る処理を行うものである。端末20が、例えば、PC等の汎用的なコンピュータで構成されている場合には、通話処理部21はソフトフォンのアプリケーションに該当する構成要素となる。
The
通話処理部21は、多地点音声ミキシング装置10と電話通信の呼の接続を行い、音声データをリアルタイムに送受信する。端末20と多地点音声ミキシング装置10との間の呼制御処理や音声通信のプロトコルは限定されないものであるが、例えば、SIP(Session Initiation Protocol)やRTP(Real−time Transport Protocol)等のプロトコルを用いて呼制御処理及び音声通信が可能であるものとする。
The
通話処理部21は、マイク23で捕捉した音声信号に所定の符号化処理(コーデック化)を施した音声データを、多地点音声ミキシング装置10へ送信する。また、通話処理部21は、多地点音声ミキシング装置10から受信した音声データを音声信号に復号して、スピーカ24から出力させる処理を行う。多地点音声ミキシング装置10と端末20との間で用いられる音信号の符号化方式(コーデック)については限定されないものであるが、例えば、例えば、ITU−T G.711、G.729などの符号化方式が適用できる。
The
次に、多地点音声ミキシング装置10のハードウェア構成について説明する。
Next, the hardware configuration of the multipoint
多地点音声ミキシング装置10は、データ処理部11、及び通信部12を備えている。
The multipoint
多地点音声ミキシング装置10は、例えば、PCやワークステーション等の汎用的なコンピュータ(サーバ装置)に、実施形態の音声処理プログラム等をインストールすることにより構成することができる。
The multipoint
通信部12は、ネットワーク40と接続するための通信インタフェースである。
The
データ処理部11は、端末20との電話通信(会議通信)に係る音声処理(例えば、音声データの送受信、や音声ミキシング処理等)をソフトウェア的に行うデータ処理手段(コンピュータ)として機能するものである。
The
データ処理部11は、データ処理手段(コンピュータ)として機能するためのプロセッサ111及びメモリ112を備えている。
The
図2では、プロセッサ111は1つのブロックで図示しているが、物理的に複数のプロセッサで構成するようにしてもよい。また、プロセッサ111としては、複数のコアを備えるプロセッサ(マルチコアプロセッサ)を用いて構成するようにしてもよい。
Although the
さらに、図2では、メモリ112は1つのブロックで図示しているが、具体的な構成については限定されないものであり、例えば、高速に動作する揮発メモリ(例えば、SRAM、DRAM等)と、不揮発メモリ(例えば、フラッシュメモリーやHDD等)等、複数メディアのメモリを組み合わせて構成するようにしてもよい。この実施形態では、データ処理部11により構成されるコンピュータに、実施形態の音声処理プログラムがインストールされているものとして説明する。
Further, although the
次に、データ処理部11に実施形態の音声処理プログラムがインストールされた場合の機能的な構成(スレッドの構成)について図1を用いて説明する。
Next, a functional configuration (configuration of threads) when the voice processing program of the embodiment is installed in the
図1に示すように、多地点音声ミキシング装置10のデータ処理部11(実施形態の音声処理プログラム)は、M個の音声処理手段としてのメディア処理スレッド30(30−1〜30−M)を用いて、N×Mチャネル(N×M台の端末20との音声データの送信及び受信するチャネル)の音声ミキシング処理を実現する。
As shown in FIG. 1, the data processing unit 11 (audio processing program of the embodiment) of the multipoint
メディア処理スレッド30は、例えば、10msごとに、周期起動し、その周期処理の中で、当該周期分(この実施形態の例では10ms)を1つの処理単位として音声データの処理を行う。すなわち、それぞれのメディア処理スレッド30は、N個のチャネルを処理(N台の端末20が送受信する音声データのストリームを処理)することが可能であるものとする。なお、データ処理部11において、各メディア処理スレッド30(30−1〜30−M)を生成及び管理する手段(例えば、スレッドの生成及び管理を行うミドルウェアやプログラミング言語等の環境)は限定されないものであり、種々の構成を適用することができる。また、メディア処理スレッド30における周期起動の間隔や音声データの処理単位の時間は10msに限定されないものである。
The media processing thread 30 is periodically activated, for example, every 10 ms, and in the periodic processing, the media processing thread 30 processes audio data with the period (10 ms in the example of this embodiment) as one processing unit. That is, it is assumed that each media processing thread 30 can process N channels (process a stream of audio data transmitted and received by N terminals 20). In the
各メディア処理スレッド30は、N個の音声受信処理31を有している。図1では、メディア処理スレッド30−1〜30−Mは、それぞれ音声受信処理31−1_1〜31−1_N、31−2_1〜31−2_N、…、31−M_1〜31−M_Nを有している。また、メディア処理スレッド30−1〜30−Mは、それぞれ音声送信処理36−1_1〜36−1_N、36−2_1〜36−2_N、…、36−M_1〜36−M_Nを有している。音声受信処理31−1_1〜31−M_Nは、それぞれ端末20−1_1〜20−M_Nから供給される音声データ(符号化された音声データ)を受信処理するものとなっている。また、音声送信処理36−1_1〜36−M_Nは、それぞれ端末20−1_1〜20−M_Nにミキシング処理した音声データ(符号化された音声データ)を送信するものである。 Each media processing thread 30 has N voice reception processes 31. In FIG. 1, the media processing threads 30-1 to 30-M have the audio reception processing 31-1_1 to 31-1_N, 31-2_1 to 31-2_N, ..., 31-M_1 to 31-M_N, respectively. . In addition, the media processing threads 30-1 to 30-M have voice transmission processes 36-1_1 to 36-1_N, 36-2_1 to 36-2_N, ..., 36-M_1 to 36-M_N, respectively. The voice reception processing 31-1_1 to 31-M_N is configured to receive and process voice data (coded voice data) supplied from the terminals 20-1_1 to 20-M_N, respectively. Also, the voice transmission processing 36-1_1 to 36-M_N is for transmitting voice data (coded voice data) subjected to mixing processing to the terminals 20-1_1 to 20-M_N, respectively.
図4は、各音声受信処理31の内部構成について示したブロック図である。
FIG. 4 is a block diagram showing the internal configuration of each
図4に示すように各音声受信処理31は、RTP受信311、ジッタバッファ312およびデコーダ313を有している。RTP受信311は、周期処理までに到来したRTPパケットの受信処理を実行し、RTPペイロード(音声符号化データ)をジッタバッファ312に投入する。そして、ジッタバッファ312は、10ms分(所定の処理単位時間分)の符号化された音声データを取出し、デコーダ313で復調(リニア音声データに復調)し、10ms分の音声データ(リニア音声データ)を出力する。
As shown in FIG. 4, each
図5は、各音声送信処理36の内部構成について示したブロック図である。
FIG. 5 is a block diagram showing an internal configuration of each
図5に示すように、音声送信処理36は、エンコーダ361およびRTP送信362を有している。エンコーダは、10ms分(所定の処理単位時間分)の符号化された音声データをRTP送信362に供給する。そして、RTP送信362は、RTPパケット化周期分の符号化された音声データが蓄積できたらRTPパケットを生成し、RTPパケットを送信する。この実施形態では、例として、RTPパケット化周期が、20msであるものとして説明する。なお、RTPパケット化周期は20msに限定されないものである。
As shown in FIG. 5, the
また、各メディア処理スレッド30(30−1〜30−M)は、加算処理32(32−1〜32−M)、循環バッファ33(33−1〜33−M)、加算処理34(34−1〜34−M)、及びミキサ35(35−1〜35−M)を有している。例えば、メディア処理スレッド30−1は、加算処理32−1、循環バッファ33−1、加算処理34−1、及びミキサ35−1を有している。 In addition, each media processing thread 30 (30-1 to 30-M) performs addition processing 32 (32-1 to 32-M), circulation buffer 33 (33-1 to 33-M), addition processing 34 (34- 1 to 34-M) and mixers 35 (35-1 to 35-M). For example, the media processing thread 30-1 includes an addition process 32-1, a circulation buffer 33-1, an addition process 34-1, and a mixer 35-1.
以下では、メディア処理スレッド30−1〜30−Mを、それぞれ1〜M番目のメディア処理スレッド30と呼ぶものとする。そして、以下では、任意のm番目(mは、1〜Mの任意の整数)のメディア処理スレッド30を、メディア処理スレッド30−mと表すものとする。また、以下では、(m−1)番目のメディア処理スレッド30をメディア処理スレッド30−(m−1)と呼び、(m+1)番目のメディア処理スレッド30をメディア処理スレッド30−(m+1)と呼ぶものとする。したがって、メディア処理スレッド30−mは、メディア処理スレッド30−m、音声受信処理31−m_1〜31−m_N、加算処理32−m、循環バッファ33−m、加算処理34−m、ミキサ35−m、及び音声送信処理36−m_1〜36−m_Nを有していることになる。 Hereinafter, the media processing threads 30-1 to 30-M will be referred to as first to M-th media processing threads 30, respectively. In the following, it is assumed that an arbitrary m-th (m is an arbitrary integer of 1 to M) media processing thread 30 is represented as a media processing thread 30-m. Also, hereinafter, the (m-1) th media processing thread 30 is referred to as a media processing thread 30- (m-1), and the (m + 1) th media processing thread 30 is referred to as a media processing thread 30- (m + 1). It shall be. Accordingly, the media processing thread 30-m includes the media processing thread 30-m, the audio reception processing 31-m_1 to 31-m_N, the addition processing 32-m, the circulation buffer 33-m, the addition processing 34-m, and the mixer 35-m. And voice transmission processing 36-m_1 to 36-m_N.
また、メディア処理スレッド30−1〜30−Mの順序は循環的に管理されるものとして説明する。例えば、メディア処理スレッド30−1に順序が隣接するメディア処理スレッド30は、メディア処理スレッド30−2と、メディア処理スレッド30−Mであるものとする。したがって、例えば、メディア処理スレッド30−(m+1)〜30−(m+M−1)とした場合は、メディア処理スレッド30−1〜30−Mのうちメディア処理スレッド30−m以外を表すことになる。例えば、m=3とした場合、メディア処理スレッド30−(m+1)〜30−(m+M−1)は、メディア処理スレッド30−1〜30−2及びメディア処理スレッド30−4〜30−Mを表すことになる。 Also, the order of the media processing threads 30-1 to 30-M will be described as being cyclically managed. For example, it is assumed that the media processing thread 30 whose order is adjacent to the media processing thread 30-1 is the media processing thread 30-2 and the media processing thread 30-M. Therefore, for example, in the case of the media processing threads 30- (m + 1) to 30- (m + M-1), the media processing threads 30-1 to 30-M represent other than the media processing thread 30-m. For example, when m = 3, the media processing threads 30- (m + 1) to 30- (m + M-1) represent the media processing threads 30-1 to 30-2 and the media processing threads 30-4 to 30-M. It will be.
以下では、m番目のメディア処理スレッド30−mを中心とした例で、各メディア処理スレッド30の内部構成について説明する。 In the following, the internal configuration of each media processing thread 30 will be described with an example centered on the m-th media processing thread 30-m.
加算処理32−mは、音声受信処理31−m_1〜31−m_Nのそれぞれから出力される単位時間分の音声データ(例えば、10ms分のリニア音声データ)を加算(合成)し、10ms分の音声データを循環バッファ33−mへ書込むものである。なお、加算処理32が複数の音声データに係る音声を加算(合成)し、加算後(合成後)の音声データを生成する処理については、種々の音声データ加算技術(合成技術)を適用することができるため、詳しい説明は省略する。 The addition process 32-m adds (synthesizes) voice data (for example, linear voice data for 10 ms) for unit time output from each of the voice reception processes 31-m_1 to 31-m_N, and generates 10 ms for voice The data is written to the circular buffer 33-m. Note that various processings for adding voice data (synthesis technology) should be applied to processing in which the addition processing 32 adds (synthesizes) voices relating to a plurality of voice data and generates voice data after addition (post-synthesis) Detailed description is omitted.
図6は、循環バッファ33−mの内部構成について示したブロック図である。 FIG. 6 is a block diagram showing an internal configuration of the circulation buffer 33-m.
循環バッファ33は、Z個のバッファ面331−1〜331−Z、読込み位置ポインタ群332、書込み面選択手段333、読込面選択手段334、及び読込み位置ポインタ選択手段335を有している。また、循環バッファ33−mは、書込み位置ポインタWP(m)を保持している。各バッファ面331は、メディア処理スレッド30で、音声データを処理する際の1単位分(この実施形態では10ms分の音声データ(リニア音声データ))を保持可能なバッファであるものとする。以下では、バッファ面331−1〜331−Zに対応するポインタ値(アドレス値)を、それぞれ1〜Zとする。
The
書込み位置ポインタWP(m)には、音声データを書き込むポインタ値(バッファ面331−1〜331−Zのいずれかを示すポインタ値)が管理されている。書込み面選択手段333は、書込み位置ポインタWP(m)の値を更新(インクリメント)してから、書込み位置ポインタWP(m)に対応するバッファ面331に10ms分のリニア音声データを書込んでいく。書込み位置ポインタWP(m)のポインタ値は、書込みの契機に、1ずつインクリメントされていき、Zまで達したら、その次の書込み契機で1となる。すなわち、バッファ面331−1〜331−Zは、書込み面選択手段333により循環的に音声データが書き込まれることになる。
The write position pointer WP (m) manages a pointer value (a pointer value indicating any one of the buffer surfaces 331-1 to 331-Z) to write audio data. The writing
読込み位置ポインタ群332には、自己(メディア処理スレッド30−m)以外のメディア処理スレッド30−(m+1)〜30−(m+M−1)のそれぞれに対応する読込み位置ポインタRP(すなわちM−1個の読込み位置ポインタRP)が配置されている。例えば、図6では、メディア処理スレッド30−mの読込み位置ポインタ群332には、読込み位置ポインタRP(1)、RP(2)、…、RP(m−1)、RP(m+1)、…、RP(M)が配置されている。読込み位置ポインタRPは対応するメディア処理スレッド30に対して読み込ませる音声データのポインタ値(バッファ面331−1〜331−Zのいずれかを示すポインタ値)が保持されている。
The read
読込み位置ポインタ選択手段335は、いずれかのメディア処理スレッド30に対応する読込み位置ポインタRPを選択し、当該読込み位置ポインタRPのポインタ値を更新(インクリメント)してから、選択した読込み位置ポインタRPのポインタ値を読込面選択手段334に供給する。読込面選択手段334は、供給されたポインタ値に対応するバッファ面331から音声データを読込んで出力(読込み位置ポインタ選択手段335で選択されたメディア処理スレッド30に出力)する処理を行う。
The reading position pointer selecting means 335 selects the reading position pointer RP corresponding to any of the media processing threads 30, updates (increments) the pointer value of the reading position pointer RP, and then selects the selected reading position pointer RP. The pointer value is supplied to the reading surface selection means 334. The reading
読込み位置ポインタ選択手段335も、書込み面選択手段333と同様に、読込みポインタ値RPのポインタ値を、読込みの契機ごとに1ずつインクリメントしていき、Zまで達したら、その次の読込み契機で1とする循環的な動作を行う。 The read position pointer selection means 335 also increments the pointer value of the read pointer value RP by 1 at each read opportunity, as the write plane selection means 333 and reaches 1 at the next read opportunity when it reaches Z. Perform cyclical action.
例えば、メディア処理スレッド30−(m−1)では、読込み位置ポインタRP(m−1)を更新してから、読込み位置ポインタRP(m−1)に対応するバッファ面から1単位分(10ms分)の音声データ(リニア音声データ)を読み込んでいく。読込み位置ポインタRP(m−1)は、読込みの契機に1ずつインクリメントしていき、Zまで達したら、その次の読込み契機で1とする巡回的な動作を行う。メディア処理スレッド30−1〜30−(m−2)、30−(m+1)〜30−Mで同様の読込み処理が実施されることになる。 For example, in the media processing thread 30- (m-1), after updating the reading position pointer RP (m-1), one unit (10 ms) from the buffer surface corresponding to the reading position pointer RP (m-1) The audio data (linear audio data) of) is read. The reading position pointer RP (m-1) increments by one at the reading opportunity, and when it reaches Z, performs a cyclic operation to be 1 at the next reading opportunity. Similar read processing is performed in the media processing threads 30-1 to 30- (m-2) and 30- (m + 1) to 30-M.
加算処理34は、他のメディア処理スレッド30(循環バッファ33)に、音声データ(読込み位置ポインタRPのポインタ値に対応するバッファ面331で保持された音声データ)の出力を要求して取得し、それらを加算(合成)した音声データを生成して、ミキサ35に供給するものである。すなわち、加算処理34−mは、メディア処理スレッド30−m以外の循環バッファ33(循環バッファ33−1〜(m−1)および、循環バッファ33−(m+1)〜33−M)から、10ms分のリニア音声データを読込み、加算(合成)し、10ms分のリニア音声データをミキサ35−mへ受け渡すものである。なお、加算処理34が複数の音声データに係る音声を加算(合成)し、加算後(合成後)の音声データを生成する処理については、種々の音声データ加算技術(合成技術)を適用することができるため、詳しい説明は省略する。
The
次に、ミキサ35の内部構成について説明する。
Next, the internal configuration of the
図7は、任意のメディア処理スレッド30−mを構成するミキサ35−mの内部構成について示した説明図である。 FIG. 7 is an explanatory view showing an internal configuration of the mixer 35-m constituting an arbitrary media processing thread 30-m.
ミキサ35−mには、音声送信処理36−m_1〜36−m_Nのそれぞれに供給する音声データを合成処理するミキサ部351−1〜351−Nを有している。 The mixer 35-m includes mixer units 351-1 to 351-N for synthesizing the audio data supplied to the audio transmission processes 36-m_1 to 36-m_N.
ミキサ部351−nは、音声受信処理31−m_(n+1)〜31−m_(n+N―1)から供給される音声データと、加算処理34−mから供給される音声データとを合成(ミキシング)した音声データを生成して、対応する音声送信処理36に供給する。具体的には、例えば、図7に示すように、ミキサ部351−1は、音声送信処理36−m_1に合成した音声データを供給するものである。したがって、ミキサ部351−1は、図7に示すように、音声送信処理36−m_2〜36−m_Nから供給される音声データと、加算処理34−mから供給される音声データとを合成(ミキシング)することになる。なお、ミキサ部351が複数の音声データに係る音声を合成し、合成後の音声データを生成する処理については、種々の音声データ合成技術を適用することができるため、詳しい説明は省略する。
The mixer unit 351-n combines (mixing) the audio data supplied from the audio reception processing 31-m_ (n + 1) to 31-m_ (n + N−1) with the audio data supplied from the addition processing 34-m The generated voice data is generated and supplied to the corresponding
これにより、音声送信処理36−1_1の送信先の端末20−1_1には、自装置(端末20−1_1)から送信された音声データ(音声受信処理31−1_1に供給された音声データ)以外の全ての端末20−1−2〜20−M_Nの音声データを合成(ミキシング)した音声データが送信されることになる。これは、その他の全ての端末20−1−2〜20−M_Nについても同様である。このように、多地点音声ミキシング装置10では、M×N台の全ての端末20−1_1〜20−M_Nに対して、各送信先の端末20を除外した音声データを合成したものを合成(ミキシング)して送信することができる。
Thus, the terminal 20-1_1 which is the transmission destination of the voice transmission process 36-1_1 is not the voice data (voice data supplied to the voice reception process 31-1_1) transmitted from the own device (terminal 20-1_1). Audio data obtained by synthesizing (mixing) audio data of all the terminals 20-1-2 to 20-M_N is transmitted. The same applies to all the other terminals 20-1-2 to 20-M_N. As described above, in the multipoint
(A−2)第1の実施形態の動作
次に、以上のような構成を有する第1の実施形態の多地点音声ミキシング装置10の動作(実施形態の音声処理方法)を説明する。
(A-2) Operation of the First Embodiment Next, the operation (the audio processing method of the embodiment) of the multipoint
図8は、この実施形態の、循環バッファ33−mの書込み/読込みタイミング例について示したタイミングチャートである。 FIG. 8 is a timing chart showing an example of write / read timing of the circular buffer 33-m according to this embodiment.
なお、図8に示す例では、メディア処理スレッド30を構成するバッファ面331の数は8個(すなわちZ=8)であるものとして図示している。 In the example shown in FIG. 8, the number of buffer faces 331 constituting the media processing thread 30 is illustrated as being eight (ie, Z = 8).
図8(a)では、メディア処理スレッド30−mの周期処理タイミング、循環バッファ33−mの書込みタイミング、書込み位置ポインタWP(m)の変更タイミング及びポインタ値が図示されている、また、図8(b)では、メディア処理スレッド30−(m−1)の周期処理タイミング、循環バッファ33−(m−1)の読込みタイミング、読込み位置ポインタRP(m−1)の変更タイミング及びポインタ値が図示されている。さらに、図8(c)では、メディア処理スレッド30−(m+1)の周期処理タイミング、循環バッファ33−(m+1)の読込みタイミング、読込み位置ポインタRP(m+1)の変更タイミング及びポインタ値が図示されている。なお、図8(a)に示す書込み位置ポインタWPは、メディア処理スレッド30−mに属するポインタである。また、図8(b)に示す読込み位置ポインタRP(m−1)及び図8(c)に示す読込み位置ポインタRP(m+1)は、いずれもメディア処理スレッド30−mの読込み位置ポインタ群332に属するものである。
In FIG. 8A, the periodic processing timing of the media processing thread 30-m, the write timing of the circular buffer 33-m, the change timing of the write position pointer WP (m), and the pointer value are illustrated. In (b), the periodic processing timing of the media processing thread 30- (m-1), the reading timing of the circular buffer 33- (m-1), the change timing of the reading position pointer RP (m-1), and the pointer value are illustrated. It is done. Further, in FIG. 8C, the cycle processing timing of the media processing thread 30- (m + 1), the reading timing of the circular buffer 33- (m + 1), the change timing of the reading position pointer RP (m + 1) and the pointer value are illustrated. There is. The write position pointer WP shown in FIG. 8A is a pointer that belongs to the media processing thread 30-m. Also, the read position pointer RP (m-1) shown in FIG. 8B and the read position pointer RP (m + 1) shown in FIG. 8C both correspond to the read
図8では、メディア処理スレッド30−(m)からメディア処理スレッド30−(m−1)へのデータ受け渡し、及び、メディア処理スレッド30−(m)からメディア処理スレッド30−(m+1)へのデータ受け渡しについて説明しているが、メディア処理スレッド30−(m)からメディア処理スレッド30−1〜30−(m−2)および30−(m+2)〜30−Mへのデータ受渡しについても同様であるので、詳しい説明を省略する。 In FIG. 8, data transfer from the media processing thread 30- (m) to the media processing thread 30- (m-1) and data from the media processing thread 30- (m) to the media processing thread 30- (m + 1) Although the transfer is described, the same applies to data transfer from the media processing thread 30- (m) to the media processing threads 30-1 to 30- (m-2) and 30- (m + 2) to 30-M. So I will omit the detailed explanation.
ここでは、メディア処理スレッド30−(m)が、例えば、10msごとに周期起動し、起動周期の乱れが発生しなかったとする。すると、メディア処理スレッド30−(m)では、10msごとに循環バッファ(m)への書込み契機が発生する。初回の書込み契機では、書込み位置ポインタWP(m)を1に設定し、バッファ面331−1へ10ms分のリニア音声データを書込む。次回以降の書込み契機では、書込み位置ポインタWP(m)をインクリメントし、対応するバッファ面331へ10ms分のリニア音声データを書込んでいく。メディア処理スレッド30−(m)では、書込み位置ポインタWP(m)がバッファ面数と同じ8となった次の書込み契機では、書込み位置ポインタWP(m)が1に設定され、バッファ面1へ10ms分のリニア音声データが書込まれる。 Here, it is assumed that the media processing thread 30- (m) periodically starts every 10 ms, for example, and the start cycle is not disturbed. Then, in the media processing thread 30- (m), a write trigger to the circular buffer (m) occurs every 10 ms. At the first write trigger, the write position pointer WP (m) is set to 1, and linear voice data for 10 ms is written to the buffer surface 331-1. The write position pointer WP (m) is incremented and writing of the linear audio data for 10 ms is performed to the corresponding buffer surface 331 at the write trigger after the next time. In the media processing thread 30- (m), the write position pointer WP (m) is set to 1 at the next write timing when the write position pointer WP (m) becomes 8 equal to the number of buffer faces, and 10 ms worth of linear audio data is written.
ここでは、メディア処理スレッド30−(m−1)が、メディア処理スレッド30−(m)と同様に10msごとに周期起動し、起動周期の乱れが発生しなかったとする。すると、メディア処理スレッド30−(m−1)では、10msごとに循環バッファ33−(m)からの読込み契機が発生する。 Here, it is assumed that the media processing thread 30- (m-1) periodically starts every 10 ms as in the media processing thread 30- (m), and the start-up cycle is not disturbed. Then, in the media processing thread 30- (m-1), a read trigger from the circular buffer 33- (m) occurs every 10 ms.
メディア処理スレッド30−(m−1)は、例えば、メディア処理スレッド30−(m)のバッファ面331−1へデータ書込み以降に読込み処理を開始する。 For example, the media processing thread 30- (m-1) starts reading processing after writing data to the buffer surface 331-1 of the media processing thread 30- (m).
メディア処理スレッド30−(m)がバッファ面331−1へ10ms分のリニア音声データを書込んだ後、メディア処理スレッド30−(m−1)の読込み契機が発生すると、これがメディア処理スレッド30−(m−1)における初回の読込み契機となる。そうすると、メディア処理スレッド30−(m)では、読込み位置ポインタRP(m−1)が1に設定される。そして、メディア処理スレッド30−(m)のバッファ面331−1で保持されている音声データ(10ms分のリニア音声データ)が、メディア処理スレッド30−(m−1)に読込まれる。メディア処理スレッド30−(m)では、次回以降のメディア処理スレッド30−(m−1)による読込み契機で、読込み位置ポインタRP(m−1)をインクリメントし、対応するバッファ面331から音声データ(10ms分のリニア音声データ)を供給することになる。読込み位置ポインタRP(m−1)は、バッファ面331の面数(最大数)と同じ8(=Z)となった次の読込み契機では、1に設定されることになる。 After the media processing thread 30- (m) writes the linear audio data for 10 ms to the buffer surface 331-1, when the reading trigger of the media processing thread 30- (m-1) occurs, this is the media processing thread 30- It becomes an opportunity of the first reading in (m-1). Then, in the media processing thread 30- (m), the reading position pointer RP (m-1) is set to 1. Then, the audio data (linear audio data for 10 ms) held on the buffer surface 331-1 of the media processing thread 30-(m) is read into the media processing thread 30-(m−1). In the media processing thread 30- (m), the reading position pointer RP (m-1) is incremented at the reading timing by the media processing thread 30- (m-1) on and after next time, and the corresponding buffer surface 331 It will supply 10 ms worth of linear audio data). The read position pointer RP (m-1) is set to 1 at the next read timing which is 8 (= Z) which is the same as the number (maximum number) of faces of the buffer surface 331.
ここでは、メディア処理スレッド30−(m+1)は、メディア処理スレッド30−(m)、30−(m−1)と同様に、10msごとに周期起動するものとする。しかし、ここでは、図8に示すように、メディア処理スレッド30−(m+1)が、メディア処理スレッド30−(m)のバッファ面331−5の音声データを読込む周期で、周期処理に時間がかかったものとする。さらに、ここでは、図8に示すように、メディア処理スレッド30−(m+1)において、バッファ面331−5、331−6、331−7、331−8を読込む周期で、起動周期の乱れが発生したとする。データ処理部11におけるソフトウェア(スレッド)での処理においては、例えばハードディスクへのデータ書込み待ちの発生などにより、通常よりも周期処理時聞が長くなり、起動周期が乱れることが有り得る。
Here, the media processing thread 30- (m + 1), the
この場合、メディア処理スレッド30−(m+1)において、バッファ面331−5、331−6、331−7、331−8を読込む周期で、起動周期の乱れに伴いRTP送信処理が遅延して揺らぎが生じるが、所望のミキシング処理を継続することが出来る。 In this case, in the media processing thread 30- (m + 1), the RTP transmission processing is delayed due to the disturbance of the start-up cycle in the cycle in which the buffer planes 331-5, 331-6, 331-7, and 331-8 are read. Can occur, but the desired mixing process can be continued.
(A−3)第1の実施形態の効果
第1の実施形態によれば、以下のような効果を奏することができる。
(A-3) Effects of the First Embodiment According to the first embodiment, the following effects can be achieved.
上述の通り、多地点音声ミキシング装置10では、M×N台の全ての端末20−1_1〜20−M_Nに対して、各送信先の端末20に係る音声データを除外した音声データを合成(ミキシング)したものを送信することができる。
As described above, the multipoint
データ処理部11では、例えば、各メディア処理スレッド30を、異なるCPUコアで並列動作することが出来るので、従来、1CPUコアでNチャネルのミキシング処理が性能限界であったものが、N×Mチャネルのミキシング処理が実行できるようになる。したがって、本発明の多地点音声ミキシング装置10は、汎用OS上でソフトウェア的にN×Mの音声データを処理することが可能となる。特に多地点音声ミキシング装置10では、各メディア処理スレッド30に加算処理32、循環バッファ33、加算処理34、及びミキサ35を備えることにより、他のメディア処理スレッド30で合成された音声データを収集して、段階的に合成する。これにより多地点音声ミキシング装置10では、複数のメディア処理スレッド30の音声データを中央で処理する構成を必要とせず、複数のメディア処理スレッド30に分散された音声データ処理のみでN×Mチャネルのミキシング処理を実現している。
In the
(B)第2の実施形態
以下、本発明による音声処理装置およびミキシングプログラムの第2の実施形態を、図面を参照しながら詳述する。以下では、本発明の音声処理装置およびミキシングプログラムを多地点音声ミキシング装置に適用する例について説明する。
(B) Second Embodiment Hereinafter, a second embodiment of the audio processing device and the mixing program according to the present invention will be described in detail with reference to the drawings. Hereinafter, an example in which the audio processing device and the mixing program of the present invention are applied to a multipoint audio mixing device will be described.
(B−1)第2の実施形態の構成
第2の実施形態の多地点音声ミキシング装置10の構成も上述の図1〜図7を用いて示すことができる。以下では、第2の実施形態の多地点音声ミキシング装置10について第1の実施形態との差異のみを説明する。
(B-1) Configuration of Second Embodiment The configuration of the multipoint
各メディア処理スレッド30の間では、各メディア処理スレッド30の間で、起動周期の乱れ等により動作タイミングがずれる場合もあり得る。その場合、一部のメディア処理スレッド30で、いずれかの読込み位置ポインタRPの位置が、書込み位置ポインタWPの位置を追い越して、時系列的に不正なデータを処理してしまうおそれがある。そこで、第2の実施形態では、起動周期乱れによるメディア処理スレッド30間の動作タイミング差分を吸収する処理が行われる。 Among the media processing threads 30, the operation timing may be shifted between the media processing threads 30 due to the disturbance of the activation cycle or the like. In that case, in some media processing threads 30, the position of any read position pointer RP may overtake the position of the write position pointer WP and process invalid data in time series. Therefore, in the second embodiment, processing is performed to absorb the operation timing difference between the media processing threads 30 due to the disorder of the start cycle.
具体的には、第2の実施形態では、例えば、任意の基準となる1又は複数のメディア処理スレッド30−(m)以外のメディア処理スレッド30について、メディア処理スレッド30−(m)の所定数のバッファ面331に書込みが行われて以降(この実施形態では、例として、バッファ面331−2へデータ書込み以降)に読込み処理を開始するようにする。さらに、第2の実施形態では、各メディア処理スレッド30の音声データの読込み契機(他のメディア処理スレッド30の循環バッファ33からの読込契機)において、当該メディア処理スレッド30の読込み位置ポインタRPが書込み位置ポインタWP(m)を追い越さないようにする処理構成(例えば、追い越す場合にはインクリメントを行わない)が追加されている。
Specifically, in the second embodiment, for example, for the media processing threads 30 other than one or more media processing threads 30-(m) serving as an arbitrary reference, a predetermined number of media processing threads 30-(m) After writing is performed on the buffer side 331 (in this embodiment, as an example, after data writing to the buffer side 331-2), the reading process is started. Furthermore, in the second embodiment, the reading position pointer RP of the media processing thread 30 is written at the reading timing of the audio data of each media processing thread 30 (timing of reading from the
(B−2)第2の実施形態の動作
次に、以上のような構成を有する第2の実施形態の多地点音声ミキシング装置10の動作(実施形態の音声処理方法)を説明する。
(B-2) Operation of Second Embodiment Next, the operation (the audio processing method of the embodiment) of the multipoint
図9は、第2の実施形態の、循環バッファ33−mの書込み/読込みタイミング例について示したタイミングチャートである。 FIG. 9 is a timing chart showing an example of write / read timing of the circular buffer 33-m according to the second embodiment.
なお、図9に示す例では、メディア処理スレッド30を構成するバッファ面331の数は8個(すなわちZ=8)であるものとして図示している。 In the example shown in FIG. 9, the number of buffer faces 331 constituting the media processing thread 30 is illustrated as being eight (ie, Z = 8).
図9(a)では、メディア処理スレッド30−(m)の周期処理タイミング、循環バッファ33−mの書込みタイミング、書込み位置ポインタWP(m)の変更タイミング及びポインタ値が図示されている、また、図9(b)では、メディア処理スレッド30−(m−1)の周期処理タイミング、循環バッファ33−(m−1)の読込みタイミング、読込み位置ポインタRP(m−1)の変更タイミング及びポインタ値が図示されている。さらに、図9(c)では、メディア処理スレッド30−(m+1)の周期処理タイミング、循環バッファ33−(m+1)の読込みタイミング、読込み位置ポインタRP(m+1)の変更タイミング及ポインタ値が図示されている。なお、図9(a)に示す書込み位置ポインタWPは、メディア処理スレッド30−(m)に属するポインタである。また、図9(b)に示す読込み位置ポインタRP(m−1)及び図9(c)に示す読込み位置ポインタRP(m+1)は、いずれもメディア処理スレッド30−(m)の読込み位置ポインタ群332に属するものである。 In FIG. 9A, the cycle processing timing of the media processing thread 30- (m), the write timing of the circular buffer 33-m, the change timing of the write position pointer WP (m), and the pointer value are illustrated. In FIG. 9B, the periodic processing timing of the media processing thread 30- (m-1), the reading timing of the circular buffer 33- (m-1), the change timing of the reading position pointer RP (m-1), and the pointer value Is illustrated. Further, in FIG. 9C, the cycle processing timing of the media processing thread 30- (m + 1), the reading timing of the circular buffer 33- (m + 1), and the change timing and pointer value of the reading position pointer RP (m + 1) are illustrated. There is. The write position pointer WP shown in FIG. 9A is a pointer that belongs to the media processing thread 30- (m). Further, the read position pointer RP (m-1) shown in FIG. 9 (b) and the read position pointer RP (m + 1) shown in FIG. 9 (c) are both read position pointer groups of the media processing thread 30- (m). It belongs to 332.
図9では、メディア処理スレッド30−(m)からメディア処理スレッド30−(m−1)へのデータ受け渡し、及び、メディア処理スレッド30−(m)からメディア処理スレッド30−(m+1)へのデータ受け渡しについて説明しているが、メディア処理スレッド30−(m)からメディア処理スレッド30−1〜30−(m−2)および30−(m+2)〜30−Mへのデータ受渡しについても同様であるので、詳しい説明を省略する。 In FIG. 9, data transfer from the media processing thread 30- (m) to the media processing thread 30- (m-1) and data from the media processing thread 30- (m) to the media processing thread 30- (m + 1) Although the transfer is described, the same applies to data transfer from the media processing thread 30- (m) to the media processing threads 30-1 to 30- (m-2) and 30- (m + 2) to 30-M. So I will omit the detailed explanation.
メディア処理スレッド30−mは、例えば、10msごとに周期起動するが、バッファ面331−4を書込む周期で、周期処理に時間がかかり、バッファ面331−5、331−6、331−7、331−8、331−1を書込む周期で、起動周期の乱れが発生したとする。ソフトウェアでの処理においては、例えばハードディスクへのデータ書込み待ちの発生などにより、通常よりも周期処理時間が長くなり、起動周期が乱れることが有り得る。 The media processing thread 30-m, for example, periodically starts every 10 ms, but in the cycle of writing the buffer surface 331-4, periodic processing takes time, and buffer surfaces 331-5, 331-6, 331-7, It is assumed that the start-up cycle is disturbed in the cycle of writing 331-8 and 331-1. In the processing by software, for example, the occurrence of waiting for writing data to the hard disk may make the periodic processing time longer than usual, and the start-up period may be disturbed.
メディア処理スレッド30−(m−1)は、メディア処理スレッド30−mと同様に10msごとに周期起動し、起動周期の乱れが発生しなかったとする。すると、メディア処理スレッド30−(m−1)では、10msごとに循環バッファ33−mからの読込み契機が発生する。 It is assumed that the media processing thread 30- (m-1) periodically starts every 10 ms as in the case of the media processing thread 30-m, and that the start cycle is not disturbed. Then, in the media processing thread 30- (m-1), a read trigger from the circular buffer 33-m occurs every 10 ms.
また、この実施形態では、メディア処理スレッド30−m以外のメディア処理スレッド30は、メディア処理スレッド30−mのバッファ面331−2へデータ書込み以降に読込み処理を開始するものとする。したがって、メディア処理スレッド30−(m−1)は、メディア処理スレッド30−mのバッファ面331−2へデータ書込み以降に読込み処理を開始する。したがって、図9に示すように、メディア処理スレッド30−mがバッファ面331−2へ10ms分の音声データ(リニア音声データ)を書込んだ後、メディア処理スレッド30−(m−1)の読込み契機が発生すると、これが初回の読込み契機となる。このとき、メディア処理スレッド30−mは、読込み位置ポインタRP(m−1)を1に設定し、バッファ面331−1から10ms分の音声データ(リニア音声データ)を読込む。メディア処理スレッド30−mは、次回以降の読込み契機において、読込み位置ポインタRP(m−1)をインクリメントし、対応するバッファ面331から10ms分の音声データ(リニア音声データ)を読込んでいくことになる。 Further, in this embodiment, the media processing thread 30 other than the media processing thread 30-m starts reading processing after writing data to the buffer surface 331-2 of the media processing thread 30-m. Therefore, the media processing thread 30- (m-1) starts reading processing after writing data to the buffer surface 331-2 of the media processing thread 30-m. Therefore, as shown in FIG. 9, after the media processing thread 30-m writes voice data (linear voice data) for 10 ms to the buffer surface 331-2, reading of the media processing thread 30- (m-1) is performed. When a trigger occurs, this becomes the first read trigger. At this time, the media processing thread 30-m sets the read position pointer RP (m-1) to 1, and reads 10 ms worth of audio data (linear audio data) from the buffer surface 331-1. The media processing thread 30-m increments the read position pointer RP (m−1) at the next read opportunity and reads 10 ms worth of audio data (linear audio data) from the corresponding buffer surface 331. Become.
図9に示すように、読込み位置ポインタRP(m−1)が5の時の最初の読込み契機(メディア処理スレッド30−mの読込み契機)では、メディア処理スレッド30−mの書込み位置ポインタWP(m)の値が5である。したがって、この時点で、メディア処理スレッド30−mにおいて、バッファ面331−5に最新の音声データが書込まれており、バッファ面331−6には、まだ音声データが書き込まれていない。そこで、メディア処理スレッド30−(m−1)は、この読込み契機において、読込み位置ポインタRP(m−1)を前値保持として(インクリメントを行わず)、バッファ面331−5の音声データを読込むようにする。この場合メディア処理スレッド30−(m−1)は、バッファ面331−5の音声データを2回連続で読込むので、この契機では、一瞬、音声の連続性が失われるが、それ以降の音声の連続性を保つことが出来る。 As shown in FIG. 9, the writing position pointer WP of the media processing thread 30-m is used at the first reading timing (the reading timing of the media processing thread 30-m) when the reading position pointer RP (m-1) is 5. The value of m) is 5. Therefore, at this point in time, in the media processing thread 30-m, the latest audio data is written to the buffer surface 331-5, and no audio data has been written to the buffer surface 331-6. Therefore, the media processing thread 30- (m-1) reads the audio data of the buffer side 331-5 with the reading position pointer RP (m-1) as the previous value holding (without incrementing) at this reading opportunity. I will In this case, since the media processing thread 30- (m-1) reads the audio data of the buffer side 331-5 twice in succession, the audio continuity is lost for a moment at this trigger, but the subsequent audio Can maintain continuity.
メディア処理スレッド30−(m−1)では、音声データを2回連続で読込む代わりに、デコーダでのパケットロス補償と同様の処理を実行することにより、過去音声より疑似人工音声(ダミー用音声)を生成してもよい。そうすれば、この契機においても音声の連続性を保つことが出来る。そして、読込み位置ポインタRP(m−1)がバッファ面数と同じ8となった次の読込み契機では、読込み位置ポインタRP(m−1)を1に設定し、メディア処理スレッド30−mのバッファ面331−1から10ms分の音声データ(リニア音声データ)を読込む。 In the media processing thread 30- (m-1), instead of reading voice data twice in a row, pseudo artificial voice (voice for dummy) is generated from past voice by executing the same process as packet loss compensation in the decoder. ) May be generated. Then, the continuity of voice can be maintained even at this moment. Then, at the next read timing when the read position pointer RP (m-1) becomes 8 equal to the number of buffer faces, the read position pointer RP (m-1) is set to 1 and the buffer of the media processing thread 30-m Audio data (linear audio data) for 10 ms is read from the surface 331-1.
(B−3)第2の実施形態の効果
第2の実施形態によれば、第1の実施形態の効果に加えて、以下のような効果を奏することができる。
(B-3) Effects of Second Embodiment According to the second embodiment, the following effects can be achieved in addition to the effects of the first embodiment.
第2の実施形態の多地点音声ミキシング装置10では、任意の基準となるメディア処理スレッド30で複数のバッファ面331へのデータ書込み以降に、他のメディア処理スレッド30の読込み処理を開始するようにしている。また、第2の実施形態の多地点音声ミキシング装置10では、メディア処理スレッド30の読込み契機(他のメディア処理スレッド30からの音声データの読込み契機)において、読込み位置ポインタRPが書込み位置ポインタWP(m)を追い越さないようにする処理を追加したので、読込みデータの音声の連続性を保つことができる。
In the multipoint
(C)他の実施形態
本発明は、上記の各実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
(C) Other Embodiments The present invention is not limited to the above embodiments, and may include modified embodiments as exemplified below.
(C−1)第2実施形態では、読込み位置ポインタRPが書込み位置ポインタWP(m)を追い越さないようにする処理について説明した。しかし、書込み位置ポインタWP(m)と読込み位置ポインタRPとのバッファ面数差分は、バッファ面数差分×起動周期の伝送遅延となり、この伝送遅延が大きくなり過ぎるのは望ましくない。そこで、各メディア処理スレッド30において、伝送遅延の遅延回復処理を実施するようにしても良い。例えば、各メディア処理スレッド30は、「書込み位置ポインタWP(m)−読込み位置ポインタRP≧X」(例えば、X=4)となった時点で、読込み位置ポインタRPを2つインクリメントしてから、データ読込みを実施するようにして、伝送遅延の遅延回復処理を実施するようにしても良い。更に、各メディア処理スレッド30は、「書込み位置ポインタWP(m)−読込み位置ポインタRP≧X」が成立した時に、音声データが無い無音区間のみで、読込み位置ポインタRPを2つインクリメントするようにしても良い。 (C-1) In the second embodiment, the processing for preventing the reading position pointer RP from overtaking the writing position pointer WP (m) has been described. However, the difference in the number of buffer faces between the write position pointer WP (m) and the read position pointer RP results in a transmission delay of buffer face number difference × activation cycle, and it is not desirable that this transmission delay becomes too large. Therefore, in each media processing thread 30, delay recovery processing of transmission delay may be performed. For example, each media processing thread 30 increments the read position pointer RP by 2 when "write position pointer WP (m)-read position pointer RP X X" (for example, X = 4). It is also possible to carry out the delay recovery processing of the transmission delay by carrying out the data reading. Furthermore, each media processing thread 30 increments the read position pointer RP by two only in a silent section where there is no audio data when "write position pointer WP (m)-read position pointer RP X X" is satisfied. It is good.
(C−2)上記の各実施形態では、本発明の音声処理装置を、多地点音声ミキシング装置に適用する例について説明したが、音声データを受信してミキシングする種々の装置に適用することができる。また、上記の各実施形態では、符号化された音声データのパケットを受信して音声ミキシング処理する例について説明したが、受信する際の音声データの符号化方式や分割形式等は限定されないことは当然である。 (C-2) In each of the above embodiments, the voice processing apparatus according to the present invention has been described as an example applied to a multipoint voice mixing apparatus, but may be applied to various apparatuses for receiving and mixing voice data. it can. In each of the above embodiments, an example of receiving a packet of encoded audio data and performing audio mixing processing has been described, but the encoding method and division format of audio data at the time of reception are not limited. It is natural.
10…多地点音声ミキシング装置、11…データ処理部、111…プロセッサ、112…メモリ、12…通信部、40…ネットワーク、20、20−1_1〜20−M_N…端末、21…通話処理部、22…通信部、23…マイク、24…スピーカ、30、30−1〜30−M…メディア処理スレッド、31、31−1_1〜31−M_N…音声受信処理、311…RTP受信、312…ジッタバッファ、313…デコーダ、32、32−1〜32−M…加算処理、33、33−1〜33−M…循環バッファ、34、34−1〜34−M…加算処理34、35、35−1〜35−M…ミキサ、36、36−1_1〜36−M_N…音声送信処理、361…エンコーダ、362…RTP送信、331、331−1〜331−Z…バッファ面、332…読込み位置ポインタ群、333…書込み面選択手段、334…読込面選択手段、335…読込み位置ポインタ選択手段、351、351−1〜351−N…ミキサ部。
DESCRIPTION OF
Claims (7)
それぞれの上記音声処理手段は、
時系列ごとの受信音に基づいた受信音データを受信する複数の音信号受信手段と、
上記複数の音信号受信手段が受信した受信音データを合成して第1の合成音声データを生成する第1の合成手段と、
第1の合成音声データを保持するバッファ手段と、
他の上記音声処理手段のそれぞれで生成された第1の合成音声データを合成して第2の合成音声データを生成する第2の合成手段と、
送信先ごとに、複数の上記音信号受信手段が受信した受信音データから当該送信先に係る受信音データを除外した音声データと上記第2の合成音声データとを合成した送信音データを生成する第3の合成手段とを有し、
上記バッファ手段は、1つの時系列の第1の合成音声データを保持する複数のバッファ部を循環的に配列した循環バッファに、時系列順に第1の合成音声データを記憶させ、
上記バッファ手段は、上記循環バッファに、所定数の第1の合成音声データを保持した後に、上記循環バッファで保持している第1の合成音声データの出力を開始する
ことを特徴とする音声処理装置。 Equipped with multiple voice processing means,
Each of the above audio processing means
A plurality of sound signal receiving means for receiving received sound data based on received sound for each time series;
First combining means for combining the received sound data received by the plurality of sound signal receiving means to generate first combined speech data;
Buffer means for holding the first synthetic speech data;
Second synthesizing means for synthesizing the first synthetic speech data generated by each of the other speech processing means to generate second synthetic speech data;
Transmission sound data is generated by combining the second synthetic speech data with voice data obtained by excluding the reception sound data relating to the transmission destination from the reception sound data received by the plurality of sound signal reception means for each transmission destination. And a third synthesis means ,
The buffer means causes the first synthetic speech data to be stored in chronological order in a circular buffer in which a plurality of buffer units holding the first synthetic speech data in one time series are cyclically arranged.
The voice processing characterized in that the buffer means holds a predetermined number of first synthetic speech data in the circulation buffer and then starts outputting the first synthetic speech data held by the circulation buffer. apparatus.
それぞれの上記音声処理手段は、
時系列ごとの受信音に基づいた受信音データを受信する複数の音信号受信手段と、
上記複数の音信号受信手段が受信した受信音データを合成して第1の合成音声データを生成する第1の合成手段と、
第1の合成音声データを保持するバッファ手段と、
他の上記音声処理手段のそれぞれで生成された第1の合成音声データを合成して第2の合成音声データを生成する第2の合成手段と、
送信先ごとに、複数の上記音信号受信手段が受信した受信音データから当該送信先に係る受信音データを除外した音声データと上記第2の合成音声データとを合成した送信音データを生成する第3の合成手段とを有し、
上記バッファ手段は、1つの時系列の第1の合成音声データを保持する複数のバッファ部を循環的に配列した循環バッファに、時系列順に第1の合成音声データを記憶させ、
上記バッファ手段は、上記循環バッファに、所定数の第1の合成音声データを保持した後に、上記循環バッファで保持している第1の合成音声データの出力を開始する
ことを特徴とする音声処理プログラム。 Make the computer function as multiple voice processing means,
Each of the above audio processing means
A plurality of sound signal receiving means for receiving received sound data based on received sound for each time series;
First combining means for combining the received sound data received by the plurality of sound signal receiving means to generate first combined speech data;
Buffer means for holding the first synthetic speech data;
Second synthesizing means for synthesizing the first synthetic speech data generated by each of the other speech processing means to generate second synthetic speech data;
Transmission sound data is generated by combining the second synthetic speech data with voice data obtained by excluding the reception sound data relating to the transmission destination from the reception sound data received by the plurality of sound signal reception means for each transmission destination. have a third combining means,
The buffer means causes the first synthetic speech data to be stored in chronological order in a circular buffer in which a plurality of buffer units holding the first synthetic speech data in one time series are cyclically arranged.
The voice processing characterized in that the buffer means holds a predetermined number of first synthetic speech data in the circulation buffer and then starts outputting the first synthetic speech data held by the circulation buffer. program.
複数の音声処理手段を備え、
それぞれの音声処理手段は、複数の音信号受信手段、第1の合成手段、バッファ手段、第2の合成手段、及び第3の合成手段を備え、
それぞれの上記音信号受信手段は、時系列ごとの受信音に基づいた受信音データを受信し、
上記第1の合成手段は、上記複数の音信号受信手段が受信した受信音データを合成して第1の合成音声データを生成し、
上記バッファ手段は、第1の合成音声データを保持し、
上記第2の合成手段は、他の上記音声処理手段のそれぞれで生成された第1の合成音声データを合成して第2の合成音声データを生成し、
上記第3の合成手段は、送信先ごとに、複数の上記音信号受信手段が受信した受信音データから当該送信先に係る受信音データを除外した音声データと上記第2の合成音声データとを合成した送信音データを生成し、
上記バッファ手段は、1つの時系列の第1の合成音声データを保持する複数のバッファ部を循環的に配列した循環バッファに、時系列順に第1の合成音声データを記憶させ、
上記バッファ手段は、上記循環バッファに、所定数の第1の合成音声データを保持した後に、上記循環バッファで保持している第1の合成音声データの出力を開始する
ことを特徴とする音声処理方法。 In the speech processing method executed by the speech processing device,
Equipped with multiple voice processing means,
Each voice processing means comprises a plurality of sound signal receiving means, first combining means, buffer means, second combining means, and third combining means.
Each of the above sound signal receiving means receives received sound data based on the received sound for each time series;
The first combining means combines the received sound data received by the plurality of sound signal receiving means to generate first combined speech data.
The buffer means holds first synthesized speech data;
The second synthesizing unit synthesizes the first synthesized speech data generated by each of the other speech processing units to generate second synthesized speech data.
The third synthesizing means includes, for each transmission destination, voice data obtained by excluding the received sound data relating to the transmission destination from the received sound data received by the plurality of sound signal receiving means and the second synthesized speech data. Generate synthesized transmit sound data ,
The buffer means causes the first synthetic speech data to be stored in chronological order in a circular buffer in which a plurality of buffer units holding the first synthetic speech data in one time series are cyclically arranged.
The voice processing characterized in that the buffer means holds a predetermined number of first synthetic speech data in the circulation buffer and then starts outputting the first synthetic speech data held by the circulation buffer. Method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014227163A JP6476768B2 (en) | 2014-11-07 | 2014-11-07 | Voice processing apparatus, program and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014227163A JP6476768B2 (en) | 2014-11-07 | 2014-11-07 | Voice processing apparatus, program and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016092679A JP2016092679A (en) | 2016-05-23 |
JP6476768B2 true JP6476768B2 (en) | 2019-03-06 |
Family
ID=56019921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014227163A Active JP6476768B2 (en) | 2014-11-07 | 2014-11-07 | Voice processing apparatus, program and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6476768B2 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0828776B2 (en) * | 1988-09-29 | 1996-03-21 | 株式会社日立製作所 | Conference call control method |
JP3553828B2 (en) * | 1999-08-18 | 2004-08-11 | 日本電信電話株式会社 | Voice storage and playback method and voice storage and playback device |
JP2003023499A (en) * | 2001-07-10 | 2003-01-24 | Matsushita Electric Ind Co Ltd | Conference server device and conference system |
EP2239931A4 (en) * | 2008-02-04 | 2012-01-11 | Nec Corp | Voice mixing device and method, and multipoint conference server |
JP5210788B2 (en) * | 2008-10-03 | 2013-06-12 | 日本システムウエア株式会社 | Speech signal communication system, speech synthesizer, speech synthesis processing method, speech synthesis processing program, and recording medium storing the program |
-
2014
- 2014-11-07 JP JP2014227163A patent/JP6476768B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016092679A (en) | 2016-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1708471A1 (en) | System and method for audio multicast | |
US6744741B1 (en) | System and method for maintaining a plurality of media conferences | |
US7869420B2 (en) | Method and system for in-band signaling of multiple media streams | |
US8463865B2 (en) | Video synchronization with distributed modules | |
WO2017101355A1 (en) | Method and device for image processing | |
US20190221223A1 (en) | Methods and apparatus for supporting encoding, decoding and/or transcoding of content streams in a communication system | |
US20060080109A1 (en) | Audio decoding apparatus | |
US20150089367A1 (en) | System and method for forwarding an application user interface | |
US7965660B2 (en) | Conference where mixing is time controlled by a rendering device | |
EP2645710A1 (en) | Method for monitoring terminal through ip network and mcu | |
US8532100B2 (en) | System and method for data exchange in a heterogeneous multiprocessor system | |
CN108882010A (en) | A kind of method and system that multi-screen plays | |
US20180324024A1 (en) | Device, system, and method to perform real-time communication | |
CN113573003B (en) | Audio and video real-time communication method, device and equipment based on weak network | |
US8355398B2 (en) | Transporting real time video frames over an Ethernet network | |
KR101833942B1 (en) | Transcoder for real-time compositing | |
JP6476768B2 (en) | Voice processing apparatus, program and method | |
CN101316352A (en) | Method and device for implementing multiple pictures of conference television system, video gateway and implementing method thereof | |
US11800017B1 (en) | Encoding a subset of audio input for broadcasting conferenced communications | |
US20050175036A1 (en) | IP image transmission apparatus | |
CN114974273A (en) | Conference audio mixing method and device | |
JP2010239433A (en) | Video coding apparatus, method and program | |
CN109150951A (en) | The starting method and apparatus of android system Activity | |
CN111954027B (en) | Streaming media data transcoding method and device, computing device and readable storage medium | |
CN114900507B (en) | RTC audio data processing method, device, equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170815 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180711 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180717 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180914 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190121 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6476768 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |