MonobitVoiceWrapper コンポーネント
目次
概要
コンポーネントのアタッチ方法
コンポーネント外観、およびその項目内容
拡張機能で用意されたコールバックメソッドについて
OnBeginEncode メソッド
OnPreEncode メソッド
OnEndEncode メソッド
OnSendVoice メソッド
OnRecievedVoiceWrapper メソッド
OnBeginDecode メソッド
OnPreDecode メソッド
OnEndDecode メソッド
Monobit Voice について、音声検出時にコールバック処理を行なうための拡張コンポーネントです
MonobitVoiceWrapper コンポーネントは、MonobitVoice の拡張コンポーネントです。
ボイスチャット中の音声入力、音声出力における各種制御を実行または終了する際に、コールバック処理を行なえるようにしています。
このコールバック処理を利用して、音声検出時に任意の処理を実行させることが出来ます。
コンポーネントのアタッチ方法▲
MonobitVoice の代替に MonobitVoiceWrapper コンポーネントをアタッチする
MonobitVoiceWapper コンポーネントを導入するためには、MonobitVoice コンポーネントを削除したうえで、
改めて MonobitVoiceWrapper コンポーネントをアタッチするだけです。
まずは ボイスチャット用コンポーネントの導入方法について の手順に合わせて、MonobitVoice コンポーネントをアタッチします。

この状態から、 MonobitVoice コンポーネントのみをリムーブします。
Inspector 上の MonobitVoice コンポーネントパネルの右上にあるボタンをクリックし、
ポップアップメニューから「Remove Component」をクリックしてリムーブします。

リムーブした MonobitVoice コンポーネントの代わりに、 MonobitVoiceWrapper コンポーネントをアタッチします。
Inspector 下部の「Add Component」をクリックします。

Add Component のプルダウンメニューから、Monobit Voice Chat > Monobit Voice Wrapper を選択します。

これで、Monobit Voice Wrapper のアタッチが完了します。
コンポーネント外観、およびその項目内容▲
MonobitVoiceWrapper コンポーネントの Inspector 設定項目について
MonobitVoiceWrapper コンポーネントの、Unity の Inspector 外観は以下のようになっており、
Inspector 上で設定できる項目は、MonobitVoice コンポーネント と全く同一です。

拡張機能で用意されたコールバックメソッドについて▲
MonobitVoiceWrapper.cs に記述されている各種コールバックメソッド
このコンポーネントで追加されるスクリプト本体は、Assets/Monobit Unity Networking/Samples/Scripts/VcWrapper/MbVoiceWrapper.cs
にあり、
その中で以下のコールバックメソッドを用意しています。
OnBeginEncode メソッド▲
機能
マイク音声について、Opus によるエンコード処理を実行する際、最初にコールバックされるメソッドです。
注意事項
メソッド内部で、必ず MonobitVoice.OnBeginEncode メソッドをコールして、return を返すようにしてください。
引数
型 |
変数名 |
内容 |
int |
channels |
音声データのチャンネル数を示します。
マイク音声をベースにしているため、原則的に1(モノラル音声)が入っています。 |
int |
samplingRate |
音声データのサンプリングレートを示します。
ここでの値は、マイクデバイス自体のサンプリングレートそのもので、接続機器により変動します。 |
戻り値
型 |
内容 |
bool |
必ず MonobitVoice.OnBeginEncode メソッドの結果を返してください。 |
記述例
// エンコード前のコールバック
public override bool OnBeginEncode(int channels, int samplingRate)
{
/*
* この場所に、独自のコールバック処理を記述してください
*/
// 最後に MonobitVoice.OnBeginEncode() をコールし、その結果を return で返してください。
return base.OnBeginEncode(channels, samplingRate);
}
OnPreEncode メソッド▲
機能
マイク音声について、Opus によるエンコード処理を開始する際にコールバックされるメソッドです。
実行手続きとしては OnBeginEncode メソッド の後にコールバックされ、
この時点でマイク音声について、Opus エンコードのために最適化されたサンプリングレートに置き換えられています。
注意事項
メソッド内部で、必ず MonobitVoice.OnPreEncode メソッドをコールして、return を返すようにしてください。
引数
型 |
変数名 |
内容 |
float[] |
voice |
Opus エンコードのために最適化された音声データ本体です。 |
int |
channels |
音声データのチャンネル数を示します。
マイク音声をベースにしているため、原則的に1(モノラル音声)が入っています。 |
int |
samplingRate |
音声データのサンプリングレートを示します。
ここでの値は、Opus によって最適化されたもので、
MonobitVoiceWrapper コンポーネントに設定された Band Width に依存します。
Band Width の設定項目 |
samplingRate の値 |
FullBand |
48000 |
SuperWideBand |
24000 |
WideBand |
16000 |
MediumBand |
12000 |
NarrowBand |
8000 |
|
戻り値
型 |
内容 |
bool |
必ず MonobitVoice.OnPreEncode メソッドの結果を返してください。 |
記述例
// エンコード開始コールバック
public override bool OnPreEncode(float[] voice, int channels, int samplingRate)
{
/*
* この場所に、独自のコールバック処理を記述してください
*/
// 最後に MonobitVoice.OnPreEncode() をコールし、その結果を return で返してください。
return base.OnPreEncode(voice, channels, samplingRate);
}
OnEndEncode メソッド▲
機能
マイク音声について、Opus によるエンコード処理を完了した際にコールバックされるメソッドです。
注意事項
メソッド内部で、必ず MonobitVoice.OnEndEncode メソッドをコールして、return を返すようにしてください。
引数
戻り値
型 |
内容 |
bool |
必ず MonobitVoice.OnEndEncode メソッドの結果を返してください。 |
記述例
// エンコード完了コールバック
public override bool OnEndEncode()
{
/*
* この場所に、独自のコールバック処理を記述してください
*/
// 最後に MonobitVoice.OnEndEncode() をコールし、その結果を return で返してください。
return base.OnEndEncode();
}
OnSendVoice メソッド▲
機能
Opus によってエンコード済みの音声データについて、送信処理を開始する際にコールバックされるメソッドです。
注意事項
メソッド内部で、必ず MonobitVoice.OnSendVoice メソッドをコールするようにしてください。
引数
型 |
変数名 |
内容 |
bool |
debugMode |
デバッグモードとして、自身のマイク音声を自身のスピーカーで再生させる場合、trueが入ります。
この設定項目は、MonobitVoiceWrapper コンポーネントに設定された Debug Mode に依存します。 |
object[] |
header |
送信されたデータについて、受信側で Opus によりデコードするために必要な、以下の情報を含むパラメータです。
・ Opusのバージョン
・ 送信シーケンスの通し番号
・ 送信データのエポックタイム
・ Opusエンコード時のサンプリングレート
・ 音声データのサンプリング数 |
byte[] |
voice |
Opus によりエンコードされた音声データ本体です。 |
戻り値
記述例
// 送信処理開始前のコールバック
public override void OnSendVoice(bool debugMode, object[] header, byte[] voice)
{
/*
* この場所に、独自のコールバック処理を記述してください
*/
// 最後に MonobitVoice.OnSendVoice() をコールしてください。
base.OnSendVoice(debugMode, header, voice);
}
OnRecievedVoiceWrapper メソッド▲
機能
サーバを介して、デコード前の音声データを受信した際にコールバックされるメソッドです。
注意事項
メソッド内部で、必ず MonobitVoice.PlaybackVoiceData メソッドをコールするようにしてください。
引数
型 |
変数名 |
内容 |
object[] |
header |
送信側で OnSendVoice メソッド を実行したときの header パラメータと同一で、以下の情報を含みます。
・ 送信側で使用した、Opusのバージョン
・ 送信側で定義した、送信シーケンスの通し番号
・ 送信側で計測した、送信データのエポックタイム
・ 送信側で設定した、Opusエンコード時のサンプリングレート
・ 送信側で設定した、音声データのサンプリング数 |
object[] |
voice |
送信側で OnSendVoice メソッド を実行したときの voice パラメータと同一で、
Opus によりエンコードされた音声データ本体です。 |
戻り値
記述例
// 受信データ取得時のコールバック
void OnRecievedVoiceWrapper(object[] parameters, byte[] voice)
{
/*
* この場所に、独自のコールバック処理を記述してください
*/
// 最後に MonobitVoice.PlaybackVoiceData() をコールしてください。
PlaybackVoiceData(parameters, voice);
}
OnBeginDecode メソッド▲
機能
受信した音声データについて、Opus によるデコード処理を実行する際、最初にコールバックされるメソッドです。
注意事項
メソッド内部で、必ず MonobitVoice.OnBeginDecode メソッドをコールして、return を返すようにしてください。
引数
型 |
変数名 |
内容 |
int |
channels |
送信側から設定値として送られてきた、音声データのチャンネル数を示します。
マイク音声をベースにしているため、原則的に1(モノラル音声)が入っています。 |
int |
samplingRate |
送信側から設定値として送られてきた、音声データのサンプリングレートを示します。 ここでの値は、Opus によって最適化されたもので、
送信側の MonobitVoiceWrapper コンポーネントに設定された Band Width に依存します。
Band Width の設定項目 |
samplingRate の値 |
FullBand |
48000 |
SuperWideBand |
24000 |
WideBand |
16000 |
MediumBand |
12000 |
NarrowBand |
8000 |
|
戻り値
型 |
内容 |
bool |
必ず MonobitVoice.OnBeginDecode メソッドの結果を返してください。 |
記述例
// デコード前のコールバック
public override bool OnBeginDecode(int channels, int samplingRate)
{
/*
* この場所に、独自のコールバック処理を記述してください
*/
// 最後に MonobitVoice.OnBeginDecode() をコールし、その結果を return で返してください。
return base.OnBeginDecode(channels, samplingRate);
}
OnPreDecode メソッド▲
機能
受信した音声データについて、Opus によるデコード処理を完了させ、かつスピーカー再生処理を開始する際にコールバックされるメソッドです。
注意事項
メソッド内部で、必ず MonobitVoice.OnPreDecode メソッドをコールして、return を返すようにしてください。
引数
型 |
変数名 |
内容 |
float[] |
decodeVoice |
Opus によるデコード処理を完了させた音声データ本体です。 |
int |
channels |
送信側から設定値として送られてきた、音声データのチャンネル数を示します。
マイク音声をベースにしているため、原則的に1(モノラル音声)が入っています。 |
int |
samplingRate |
送信側から設定値として送られてきた、音声データのサンプリングレートを示します。 ここでの値は、Opus によって最適化されたもので、
送信側の MonobitVoiceWrapper コンポーネントに設定された Band Width に依存します。
Band Width の設定項目 |
samplingRate の値 |
FullBand |
48000 |
SuperWideBand |
24000 |
WideBand |
16000 |
MediumBand |
12000 |
NarrowBand |
8000 |
|
戻り値
型 |
内容 |
bool |
必ず MonobitVoice.OnPreDecode メソッドの結果を返してください。 |
記述例
// 再生開始コールバック
public override bool OnPreDecode(float[] decodeVoice, int channels, int samplingRate)
{
/*
* この場所に、独自のコールバック処理を記述してください
*/
// 最後に MonobitVoice.OnPreDecode() をコールし、その結果を return で返してください。
return base.OnPreDecode(voice, channels, samplingRate);
}
OnEndDecode メソッド▲
機能
受信した音声データについて、スピーカー再生処理を完了した際にコールバックされるメソッドです。
注意事項
メソッド内部で、必ず MonobitVoice.OnEndDecode メソッドをコールして、return を返すようにしてください。
引数
戻り値
型 |
内容 |
bool |
必ず MonobitVoice.OnEndDecode メソッドの結果を返してください。 |
記述例
// 再生完了コールバック
public override bool OnEndDecode()
{
/*
* この場所に、独自のコールバック処理を記述してください
*/
// 最後に MonobitVoice.OnEndDecode() をコールし、その結果を return で返してください。
return base.OnEndDecode();
}