0 支持
(160 ポイント)

MonobitVoice にて2台のPC(仮にPC-AとPC-Bとしておきます)で音声チャットを行った際に片方のPCで話した声がそのPCに2秒程度遅れてスピーカーから流れる現象が発生しています。

PC-Aで「あ~」と言うと2秒程度遅れて小さい音量で「あ~」とPC-Aのスピーカーから流れる様な現象です。

最初は、PC-Aの音がPC-Bで流れその音をPC-Bのマイクがその音を拾ってPC-Aに送信しているのかと考えたのですが、どちらもヘッドセットに切り替えて話をしてもその現象が発生しております。

SendStreamType は BROADCAST にしているので、自PCに音声を送っている様な事もないと考えております。(送ったとしても2秒程度遅れるのはおかしいと思います)

エコーキャンセル対応で、MonobitEngine.VoiceChat.MonobitMicrophone.TalkingThresholdの値を変更して音声カットの状態を確認していますが、VAD を有効にした場合、音量の閾値(TalkingThreshold)による音声カット以外に、別の波形加工処理(例えばマイクが拾った音を波形から減算する様な処理)が動作していたりするのでしょうか。

PCやヘッドセットによって現象の大小が異なるので機器特性なのかもしれませんが、原因がつかめておらず対応出来ません。

どなたかこのような現象を確認されておられましたら、原因や対策などお知らせ頂ければと思います。

回答 1

0 支持
(1.4k ポイント)
MonobitVoice コンポーネントの Playback Voice Local NoCheck, および Debug Mode が有効になっていませんか?
(160 ポイント)
ご回答ありがとうございます。
Playback Voice Local NoCheck と Debug Mode に関してですが、どちらも無効(チェック無)の状態です。スクリプトでも操作はしていないです。

MonobitVoiceの方で特に処理をしていないのであれば、PCのマイクやヘッドセット自体の機能の可能性もあるのでしょうか。(この辺りは経験しているかどうかなのかもしれませんが。。。)
(1.4k ポイント)
PCのマイク/ヘッドセットの影響というのは考えづらいのでひとまず置いておきましょう。

> 最初は、PC-Aの音がPC-Bで流れその音をPC-Bのマイクがその音を拾ってPC-Aに送信しているのかと考えたのですが、どちらもヘッドセットに切り替えて話をしてもその現象が発生しております。

この部分について詳しくお聞かせください。


1. PC-AとPC-Bの距離はどの程度でしょうか?
もし近くに存在しているのであれば、PC-Aのマイクで話した(と思っている)音声が、PC-Bのマイクでも拾っており、PC-Bのマイクで拾った「小さな声」がPC-Aで流れる、というケースが考えられます。
仮にこの状態であれば、PC-B上で一旦マイクを無効化するなどして試してみてください。


2. VR Voicechat with MUN に含まれるサンプル「SimpleVoiceChat( https://is.gd/zctALU )」で動作させた場合、同じような現象は発生するでしょうか?
同現象が発生する場合にはPC、あるいはマイク/ヘッドセットの影響を考えなければならないのですが、同現象が発生しない場合であれば、作成されているシーンプロジェクト自体に何らかの問題があります。この場合には GoogleDrive や GitHub, ギガファイル便などでデータ共有していただければ、問題解決につながる一助はできそうな気がします。


3. もしAndroidもしくはiOS端末を所持しているのであれば、そちら用の実行バイナリを作成して「PCのマイクをOFFにして、アプリを起動させたモバイル端末のマイクから話す」場合にどうなるでしょうか?
上述の1. および 2. を含めてですが、これで正常に動作するのであればデバイス環境の問題、正常に動作しなければシーンプロジェクトの問題である可能性が高いです。
(160 ポイント)
ご回答ありがとうございます。
環境が用意できたので、確認してみました。

1.について
部屋を一つまたいだその向こうの部屋との試験をしています。距離的には直線距離で6m以上離れています。またその間には壁が2枚あります。
この環境ですので、一方の声をもう一方のマイクが拾うというのは考えにくいです。

2.について
SimpleVoiceChatでも発生しました。

3.について
端末が用意できなかったので試すことが出来ませんでした。

以下に、試験で使用した物の型番など含めてご報告いたします。
試験は全て SimpleVoiceChat を使用しています。

PC
PC1:DELL LATITUDE 3540
PC2:Panasonic Let's Note CF-SV

ヘッドフォン
H1:iPhone付属のマイク付きイヤホン(4極ミニプラグ)
H2:ELECOM HS-HP22TBK(4極ミニプラグ)
H3:SOUNDPEATS Q30 HD Bluetoothイヤホン
H4:詳細不明の耳を覆うタイプの大きめのヘッドセット(4極ミニプラグ)

試験A
 PC1+H1 - PC2+H1
 問題なし

試験B
 PC1+H2 - PC2+H4
 PC1 側でエコー発生

試験C
 PC1+H4 - PC2+H2
 PC2 側でエコー発生

試験D
 PC1+H4 - PC2+H3
 PC2 側でエコー発生

4極ミニプラグの規格の問題かとも考えたのですが、Bluetoothイヤホンでも発生して
いますので問題はそこではないようです(試験D)

やはりマイク/ヘッドセットの機器特性なのでしょうか。
であるとすると、特性としてどういった要件が問題となるのでしょうか。
(カタログスペックなどを見て判断できるような要件だと嬉しいのですが。。。)
(1.4k ポイント)
詳細ありがとうございます。試験A~Dから判断するに
「H4のヘッドセットのマイクで入力した音声にエコー処理を掛けた状態で送信、相手側にエコーを含めた音声が再生されている」
と考えられますね。

VR VoiceChat with MUN の問題ではなくマイク/ヘッドセットの機器の特性の問題としてとらえられるので、一般的なマイクデバイスのエコー対策として下記の点を試してみてください。

・一部のサウンドデバイスでは「立体音響」が有効になる場合があります。デスクトップトレイの「サウンド」のアイコンを右クリックし、「立体音響」が有効になっている場合、これを「オフ」にしてください。
・同じく「サウンド」のアイコンを右クリックし、メニューから「サウンド」を選んでサウンドウィンドウを開いてください。ウィンドウに「録音」タブが表示されますので、使用しているヘッドセットのマイクをダブルクリックしてプロパティを開き、さらに「レベル」タブを選択してマイクの音量をある程度下げてください。また、マイクブーストが有効になっている場合、マイクブーストは±0dbに設定してください。
https://support.microsoft.com/ja-jp/office/%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA-%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%A7%E3%82%A8%E3%82%B3%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%82%E3%82%8B-124e3b6c-6d01-4db2-94a3-75c0ecc289c3
(160 ポイント)
ご回答ありがとうございます。

マイクの感度が良すぎて音を拾いすぎているという事なのですね。
それで H4 が原因とすると確かに合点がいきます。
( PC1 の設定ではマイクブーストが有効になっていました)
ヘッドセットを使用していない時にも発生していた環境がありましたが、こちらもマイクが音を拾ってしまっていたと考えるのが正しそうですね。
基本的にはマイク/ヘッドセットの機器の特性の問題と認識し、また環境を整えて試験をしたいと思います。
...