0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unityでマルチチャンネル音声入力を試す 2026年版

0
Posted at

はじめに

この記事は
https://qiita.com/toqkz/items/142c79aaa1d831cb5a52
の更新で、基本的な内容は元記事と同じです。

更新の経緯としては、少し前に備忘録として役に立ったので、せっかくなので最新情報に更新しようと思った次第です。

問題の再確認

uLipSyncを使って同時に3体以上のリップシンクを行うと、同時2体までは期待動作しても3体同時だと動作しなくなることがあります(※環境依存の場合もあります)
これはuLipSyncの問題でなく、AudioSource + OnAudioFilterReadが原因の可能性が高いです。
手元の環境では図のような状況でした。

1マイク1インターフェース.png

ただ、図のような接続でも、AudioSourceを使わない運用(例えばリアルタイムのリップシンクに限定)なら動作します。
Unityだけの機能で実現するなら、Microphone + AudioClipクラスを使ってAudioClipからGetDataしてuLipSyncのOnDataReceivedに書き込めば × だった構成でも期待動作します。つまりオーディオインターフェースの数は関係なく、音声の取得経路に問題があり、

× Microphone + AudioSource + OnAudioFilterRead
○ Microphone + AudioClip + GetData

ということになります。
これで問題自体は回避できるんですが、リップシンク対象が3体、4体…と増えるとオーディオインターフェースも追加する必要があり、機材や物理的な接続の管理が煩雑になります。

そこでNAudio

ここで元記事にあるようにNAudioを使うことにします。
NAudioを使った場合、1台のオーディオインターフェースで複数のマイク入力を扱えるので、ハードウェアの構成はシンプルになります。注意点としてはオーディオインターフェースがマルチチャンネル入力やASIOドライバ対応していることです。

Nマイク1インターフェース.png

元記事ではZOOM LiveTrak L-8を使っていましたが、今回はZOOM Zoom LiveTrak L6max を使います。
入力数は手元のダイナミックマイクが3つしかなかったので、同時3入力でテストします。

260102_機材.jpg

事前にFL Studioで確認すると、ちゃんとスペック通り12入力確認できます。
IN1~4がマイク入力なので、今回はIN1~3を使うことになります。

LiveTrak L6max IN.png

検証

検証に使ったソフトウェアやライブラリのバージョンは表の通りです

名称 バージョン
Unity 6000.0.61f1
NAudio 2.0.2
NAudio.core 2.2.1
NAudio.asio 2.2.1
NAudio.wasapi 2.2.1
NAudio.winmm 2.2.1
uLipSync 3.1.4
UnityChanSSU_URP 1.0.5

NAudioはUnityに合わせて.NET Standard 2.1で動かすため、最新のものではありません。

実際動作させた結果はXの動画になります。
特にハマるポイントもなく期待動作しました。

検証とは関係ありませんが、せっかくなのでInspector表示は強化しています。
ボリュームバーを作るのが地味に面倒でしたね…

Inspector強化.png

あとは元記事にも書いてありますが、音声データ取得はUnityのメインスレッドとは別スレッドなので、音声データをUnityに渡すところは注意しましょう。GCを気にするなら自前でSPSCなキューを作ればいいと思います。

最後に

数年後、また見直していたら更新します。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?