【ゆかりねっと使用】音声認識した結果をチャットと読み上げボイスに変換してVRChatに送る方法


ご挨拶

こんにちは!VRChatを始めてそろそろ3ヶ月が経つ、なとりと申します。
今日は生声をマイクを通して音声認識させ、認識結果をテキストチャット読み上げボイスに変換してVRChatに送る方法について書いていきます。

まえがき

VRChatでの主なコミュニケーション手法としてボイスチャットがありますが、中にはあえてボイスチャットを使わずにVRChatをプレイする層も存在します。
いわゆる、無言勢と呼ばれるプレイヤー層です。

無言であってもペンや身振り、テキストチャットなどでコミュニケーションは十分に取れますが、やはり声は即応性という面において何よりも優れており、無言によるやりとりは声に比べるとやや時間がかかってしまいます。

今回は無言勢の中でも、

  • 声を出したくない(が、逆に言えば自分の声でなければそれでよい

  • アバターに合った声を出したい

  • テキストチャットを簡単に入力したい

といった人に向けた、
音声認識を用いたテキストチャット送信+読み上げボイス送信
の方法について紹介します。
併用する手法を紹介しますが、どちらか片方のみの利用も可能です

使用ソフト

今回使用するソフトウェアは以下の通りです。

  • ゆかりねっと

  • ゆかりねっとOSC通信プラグイン

  • 仮想ステレオミキサー(Voicemeeter Banana)

  • 読み上げソフト(今回は棒読みちゃん+VOICEVOXにします)

  • SAPIForVOICEVOX(棒読みちゃん~VOICEVOX間の連携用プログラム)

概略図

以下はマイクから音声を入力してVRChatにまで送る概略図です。
OSCとかよくわかんないよって人でも大丈夫です。
筆者もよくわかっていません

音声認識フロー概略図

セットアップ(インストール)

それでは各種ソフトのインストールを進めていきましょう。

ゆかりねっと

まずはゆかりねっとから。下記のURLにアクセスします。

特になければ64bit版を選択し、データをダウンロードします。

あとはzipファイルを解凍し、setup.exeを実行してインストールを実施しましょう。

ゆかりねっとOSC通信プラグイン

次はゆかりねっとOSC通信プラグインを導入します。
下記から最新バージョンのプラグインをダウンロードしてください。

解凍後にインストール作業に入りますが、このときファイルのコピー先フォルダとしてゆかりねっとのインストールフォルダを指定します。
初期状態だとコピー先の指定が誤っている可能性があります。
Program Files (x86)ではなく、Program Filesが正しいです。
ゆかりねっとのインストール先を手動で変更している場合も、その変更先を指定する必要があります。
この辺りは実際にインストール先を確認してください。

コピー先フォルダが正しいか要確認

Voicemeeter Banana

仮想ステレオミキサーとしてVoicemeeter Bananaをインストールします。

Downloadボタンがあるのでクリックしてダウンロードします。

あとは解凍してインストールするだけなので省略。
今回はVoicemeeter Bananaをインストールすることで利用できる仮想ステレオミキサー(Voicemeeter Input)を利用します。
Voicemeeter Banana自体は今後使いません。ここでお役御免です。

棒読みちゃん

https://chi.usamimi.info/Program/Application/BouyomiChan/#Download

β版をダウンロードしましょう

VOICEVOX

SAPIForVOICEVOX


画面右のReleasesをクリック


指示に従い、32bit版をダウンロードします

セットアップ(作業)

棒読みちゃんがVOICEVOXを利用できるようにする

SAPIForVOICEVOXを用いて話者を追加することで、棒読みちゃん上でVOICEVOXの音声を選択・利用できるようにします。
成功するとこんな感じで棒読みちゃん上でずんだもんなどが選べます。

左下のwindowsマークを押下してプログラム一覧を開き、「SAPI For VOICEVOX 32bit」から「スタイル登録ツール」を選択します。

VOICEVOXを起動しているか聞かれるので、起動した状態で「VOICEVOXを起動した」を選びましょう。

VOICEVOX上に実装されている音声一覧が表示され、SAPIとして何を登録するか選択できます。

すべて追加することもできますが、棒読みちゃん上にて話者を選択する際のドロップダウンメニューが大変なことになるので、最初はずんだもんなどの代表的な話者のみ選ぶか、あらかじめVOICEVOX単体で声を聞いてみて気に入ったものだけ選択するのをおすすめします。

選べねェ

ゆかりねっとのセットアップ

ゆかりねっとを起動し、「音声認識」タブから「棒読みちゃん連携」にチェックを入れましょう。

棒読みちゃん連携を選択する

次に、「フィルター」タブを選択します。
OSC通信プラグインのインストールがうまくいっていれば、「OSC通信プラグイン」が表示されているはずです。

フィルターからOSC通信プラグインを選択

もしフィルターが□無効 の場合は ☑有効 にしておきましょう。
音声認識結果をVRChatのテキストチャットとして表示させたい場合、「VRChatのチャットに送付する」を選びます。
音声認識内容をそのままの状態で送信するため、「母国語」にチェックを入れます。
VRChatのミュート状態に連動する」を選択した場合、VRChat上でミュート状態のときは音声認識結果をテキストチャットとして送信しなくなります。独り言を入れたくない場合は入れておくとよいでしょう。

音声認識テスト

ここで一旦、ゆかりねっとが音声認識を行ってくれるかテストしてみましょう。
画面上部の「開始」をクリックします。

開始ボタン

chromeのウィンドウが開き、音声認識のためにマイクの利用許可を求めてきます。「許可する」を選択しましょう。

許可する

マイクに向かって喋ってみて、認識されたら成功です。
認識されない場合、マイクの選択先が喋り先のマイクと異なる場合があります。(例えば、通常のマイクを選択した状態でVRゴーグルのマイクに話しかけているなど)
chromeの設定タブからマイクを選択する、windowsの録音デバイスから「既定のデバイス」として現在のマイクを選択するなどで解消される可能性があります。

結構やばい

次に、「棒読みちゃん」「VOICEVOX」を起動した状態で、同様に音声認識を実施してみましょう。
棒読みちゃん上で、声質をVOICEVOXのものに変更しておきます。
ゆかりねっとの音声認識後に、棒読みちゃんの「処理対象文字列」に同様の文字が表示されていれば棒読みちゃんとの連携ができていることが確認できます。
また、実際にVOICEVOXの声(今回はずんだもん)が聞こえていれば完璧です。

処理対象文字列に読み上げ結果が表示された

読み上げ音声の出力先をステレオミキサーに変更する

VRChatに読み上げ音声を出力するためには、現在出力している音声の出力先を変更する必要があります。
読み上げ音声を実際に出力しているのは棒読みちゃんなので、棒読みちゃんの設定を開きましょう。
メニュー一覧のスパナマーク🔧から基本設定画面を開きます。

基本設定画面を開いた直後

システム >> 音声出力デバイス をクリックし、下記のような一覧を表示します。

音声出力デバイスからステレオミキサーを選択

Voicemeeter Bananaをインストールしているので、「VoiceMeeter Aux Input」が一覧に表示されているはずです。
「VoiceMeeter Aux Input」をクリックして、青い行として表示されている状態を維持したまま、ウィンドウ下部の「OK」をクリックします。
これで、読み上げ結果をステレオミキサーに出力できるようになりました。

さて、読み上げ結果の音声をミキサーに出力したことで、今度はその音声をイヤホンやスピーカーから聞くことができない状態になります。
出力先を変えているので当たり前といえば当たり前なのですが、少し不便ですね。
windowsには「音声を聴く」機能があるので、これを解消します。
タスクバー内のスピーカーアイコンをクリックして、「サウンド」を選択します。

開いたウィンドウの「録音」タブをクリックして、「VoiceMeeter Aux Output」をクリックします。
その状態で「プロパティ」をクリックして、VoiceMeeter Aux Outputのプロパティを開きましょう。

ステレオミキサーのプロパティ

開いたプロパティから「聴く」タブを選択します。
このデバイスを聴く」というチェックボックスがあるのでチェックを入れましょう。
「このデバイスを使用して再生する」のプルダウンメニューにて、現在利用しているオーディオデバイスを選択します。
これで、ステレオミキサーに出力した読み上げ音声を聞くことができるようになりました。

VRChatで試してみる

ではいよいよVRChat上でチャットの送信や音声出力ができるか試してみましょう。
棒読みちゃん、VOICEVOX、ゆかりねっと、VRChatを起動している状態で、ゆかりねっとの読み上げを開始します。
※privateワールドでのテストをおすすめします。

OSC設定

テキストチャットを利用する場合、VRChatとゆかりねっとはOSCという仕組みで音声認識結果をやりとりします。
OSCは設定で許可しないとやり取りができないため、まずはOSCの利用を許可しましょう。
settingsの検索窓に「OSC」と打ち込んで検索することでOSC関連の設定を表示できます。
「OSC」というそのまんまの設定があるので、チェックを「ON」にしましょう。

右上の検索窓にOSCと打ち込んで検索し、「OSC」のチェックをオンにする

マイク設定

次にマイクの出力設定を変更します。
左のメニューから「Audio & Voice」を選択してマイク関連の設定を表示します。
「CURRENT DEVICE」を「VoiceMeeter Aux Output」に変更しましょう。

設定

「Mic Output Volume」は棒読みちゃん側の設定にもよりますが、結構大きめに出力されてしまうようなので「35%」を目安にします。フレンドさんなど、信頼できる人といっしょに音量を調整してみてください。
読み上げボイス以外の音源が出力されないため、原則ノイズは入りません。
なので、「Noise Suppression」はオフでOKです。
「Mic Activation Threshold」も0%で良いでしょう。(画像では1%になっちゃってます)
その他の設定はお好みで。

テスト

これで読み上げ音声の出力とテキストチャット出力の準備が整ったはずです。VRChat側のマイクミュートを解除した状態で、マイクに発音してみます。リップシンク対応のアバターを使って、マイクに発音した瞬間には口パクせず、読み上げ音声が出力された時に口パクされていれば成功です。また、HQミラーの前に立つ、頭上を見上げるなどで自分のテキストチャットも確認してみましょう。ちなみにOSC経由でテキストチャットを打った場合、通知音(ポンッ)は鳴りません。

小ネタ

フィルターを利用して文字表現を豊かにする

音声認識結果は基本的に読み上げた内容がそのままテキストチャットに垂れ流されるので、たとえば感嘆符「!」や疑問符「?」、三点リーダ「…」などのテキストチャットで頻出する表現ができません。
しかし、ゆかりねっとの「フィルター」機能を利用することで音声認識結果を記号に変換することができます。

たとえば「ビックリマーク」という単語に対し「!」と変換するように設定することで、「こんにちは ビックリマーク」と発音すれば「こんにちは!」と表示されるようになります。もちろん、読み上げも変換後の文章から行ってくれるので多少の抑揚をつけることができるようになります。

フィルター適用前
フィルター適用後

読み上げの音量・速度・声質を変える

読み上げが早すぎる、もっと音程を変えたい、などの場合は棒読みちゃん側の設定を変更することで次回以降の読み上げから変更することができます。

おわりに

おわりです。
読み上げソフトの利用は無言勢の範疇から超えているのではないかと思わなくもないですが、テキストで数十秒かかる入力が5~6秒で終わるのは結構楽なものです。読み上げ単体だと聞き取りづらい、テキストチャット単体だと気づきにくいですが、両方合わせることでバランスよく意思表示することができます。もちろん、テキストチャット単体でも、読み上げ単体でも利用できます(筆者はpublicで読み上げ音声を使うのはちょっとこわいので、テキストチャット単体にしています)。VOICEVOXには多数の声が実装されており、アバターに合った声を選ぶ、今の気分に合わせて声質を変えるといった独自の楽しみ方もあるので、ぜひ試してみてください。

トラブルシューティング系の内容は、今後拡充する方針です。


この記事が気に入ったらサポートをしてみませんか?