記事一覧へ戻る

STT、RTTを使って音声ルーティングのお話

by sumside


Posted on 2018年06月15日 16時40分23秒


STT、RTTを楽しむ

 
このサイト管理人、VTFさんが作成した翻訳システム、とても素晴らしいです。
Speech To Trance(STT)Read to Trance(RTT)を使用する為の仕組み自体はとても簡単。
認識させたい音をそれぞれに指定すればいい。
だが、その認識させたい音をどう持ってくるか、てのが手こずるかもしれない。
とりあえず、音声の流れを理解、どこで設定するか、そして活用する為の一例をあげます。

〜前提条件〜  
・Windows10 2018Aprilアップデート適用済み。  
・仮想音声デバイスを2つ使用。(input、outputの両方があるものなら何でもokかと。) 
・別インスタンスで動くChromeを2つ準備(ChromePortableか、アプリ化したChorome等。)
  ※文中はChrome1をSTT用、Chrome2をRTT用として説明します。
・msjpとmixerを連携。  (翻訳テキストを出したい場合等。)
 

音声の流れと設定

 

Speech To Trance(STT)

STTは自分が喋った音を認識させたい。
基本、使用しているマイクをブラウザ側で指定すればいい。
これは簡単。翻訳音声を喋らすのも問題なく出ているはず。

Chrome1でSTTのページを開き、右上のビデオカメラマークから設定。

注:説明の都合上STT側の音声出力を後で設定します。
 

Read to Trance(RTT)

手こずるのはRTTだと思う。
RTTに認識させたいのは、ブラウザで表示させている動画とかゲームの音声になると思う。
でも音が鳴っている音声デバイスを指定できない。
何故なら録音側デバイスに認識させたい音声が無いから。

ではどうするか。

仮想音声デバイスを使います。
仮想音声デバイスで再生した音は同じ仮想音声デバイスの録音側にも入ります。
後はブラウザ側の設定をその仮想音声デバイスにしてあげればいい。
Chrome2でRTTのページを開き設定準備。

windows画面右下のスピーカーアイコンを右クリック→「サウンド」と操作。
次にサウンドデバイス一覧を出します。

再生側の仮想音声デバイスを「既定のデバイス」にする。
そうするとPCで再生される音は全て指定した「既定のデバイス」に流れる。
この音は同じ仮想音声デバイスの録音側にも送られている。
録音側の仮想音声デバイスをRTTのブラウザ側に設定する。
この時点でyoutube動画などの音声は認識されてると思う。

だが、今の状態では音がスピーカーから出てないと思う。
そこで、仮想デバイスの録音側の音をスピーカー等に繋がっている音声デバイスに送ります。

録音側の仮想音声デバイスのプロパティ→「聴く」タブ→「このデバイスで聞く」にチェック。 スピーカー等が繋がってるデバイスを指定。

これで音が聞こえるようになります。

しかし、ここで問題が一つ出ます。
今のままでは、STTが自分の声を認識し翻訳音声を出すと、その音は「既定のデバイス」から出てしまうので、RTTがそれを認識してしまいます。
つまり、STTで翻訳された音声がRTTで逆翻訳されてしまうのです。
またRTTの翻訳音声も既定のデバイスから出ているのでおかしな言葉を拾うかもしれません。
これはこれで面白いのですが通常は不便なので対処します。

 

STT、RTTの音声出力設定

仮想音声デバイスをもう一つ使います。
そしてSTTのブラウザの音声出力先を変更します。

変更方法は、 STT、RTTを各ブラウザで立ち上げた状態にする。

右下のスピーカーアイコンから「サウンドの設定」を開く。

そしてそのページの中央付近にある

「アプリの音量とデバイスの基本設定」

をクリック。

出てきた画面でSTTの出力先をもう一つの仮想音声デバイスに割り当てます。
次にRTTの出力先も変更します。
これはスピーカーが接続されてる音声デバイスに。

そして、STTの音声を実際のスピーカーから聞く為の設定を行う。

今度は「サウンド」を開き録音側のもう一つの仮想音声デバイスのプロパティを開きます。
そして、このデバイスで聞くにチェックを入れスピーカー等が繋がってる音声デバイスを指定すればok。

これで、翻訳音声はRTTに拾われることは無くなり、スピーカーからSTTで翻訳された音声も聞こえるようになります。

全体の音の流れのイメージ

注:単純にSTTの音声出力をスピーカーの繋がってる音声デバイスにしてもok。その場合はRTTで使用する仮想音声デバイス1つでとてもシンプル。筆者はVRCHATで自分の声とその翻訳音声を流したり、配信設定等での汎用性の為、このような設定にしています。

音周りに関しては基本的にはこれでokです。
放送する場合は、キャプチャする音声をスピーカーに繋がってるデバイスを指定。
ゲームなどの音声、翻訳音声共に拾えます。 (もちろん自分の声は使ってるマイクを指定。)

 

本当のオススメ設定

慣れてくれば、通常時はスピーカーに繋がっている音声デバイスを規定のデバイスのままで、翻訳させたい時だけアプリやソフトウェアの音声出力先をのみを切り替えて使用する等応用できるようになると思います。
音の流れ(入力出力)を掴めれば自分の使いやすいスタイルに合わせられるようになるでしょう。

さて、配信するにあたって、人によっては

- コメントやチャット音声はRTTに翻訳させたくない。
- VRCHATでSTTの翻訳音声をゲーム内で聞かせたい、またそれを放送に載せたい。
- 毎回、設定を色々変更するのは面倒。
- 放送には翻訳音声を載せたくないけど自分には聞こえるようにしたい。

等、要望がいろいろあると思います。
解決方法はあります。
ですが、いろいろな要望を叶えるなら、管理人のVTFさんも用いてるVoiceMeeterBANANAで音声をルーティングさせた方が簡単かつ汎用が効きますので、非常にオススメです。

https://mixer.jpn.ph/blog_post/VTF/5b156fb8e7bf8526271edd42

注:筆者のゲームをしているPCはとても貧弱なのでBANANAのCPU使用率をも削りたく、このような設定をしています。できればBANANAを使いたい。

BANANAは、ぱっと見分かりにくいが音の流れと要点さえ抑えれば非常に有能です。
(これの機能を有したハードウェアミキサーが出ることを希望。)

 

注意&TIPS

  1. 同じ仮想音声デバイスを入れているはずなのに表記が違うことがあります(筆者は2018Aprilアップデートで表記がおかしくなりました)。winのバグ?
  2. 強制的に既定のデバイスを変更してしまうソフトとかもありますので、あれ?音が出なくなったな?と思ったら既定のデバイス等を確認。
  3. 音が出ないときはサンプリングレート等も合わせられるものは合わせていた方がいいかもしれない。
  4. Windowsの「サウンドの設定」で入出力先を変更しても切り替わらないゲームやソフトがあります。その場合、ゲームやソフト側で切り替えられればいいのですが、できない場合は現状諦めるしかないようです。
  5. STT、RTTで翻訳テキストを出力したい時は、「字幕ソースページ」下の「SubTitle Option」をクリックし各部設定する。 設定が終われば「Apply」をクリック、その後「字幕ソースページ」をクリックし出てきたページのURLを各配信ツールで取り込む(OBSならブラウザソース等で)。
  6. 筆者の設定を教えて欲しいと要望があり、口頭での説明は難しかったのでblogに載せて見ました。決して最適解では無いのでご注意ください。
注:筆者の設定は状況によりいろいろ変えていますし、もっといい方法もあると思います。 音の流れを考え、より使いやすい設定を構築してみてください。そしていい方法があったら是非教えてくださいませませ。
 

Link

STT https://mixer.jpn.ph/openchat
RTT https://mixer.jpn.ph/openchat2

ブラウザ
chromePortable https://portableapps.com/apps/internet/googlechromeportable

仮想音声デバイス
YAMAHA NETDUETTO http://netduetto.net/download/
VB-AUDIO Virtual Audio Cables https://www.vb-audio.com/Cable/index.htm
VB-AUDIO VOICEMEETER BANANA https://www.vb-audio.com/Voicemeeter/banana.htm
(BANANAを入れると仮想音声デバイスが2つとコントロールソフトウェアが入ります。)


Leave a Comment:
Search