zufall-upon / kikisen-vc

Text to speech, speech to text, auto-recognized translation system. I want it in this software.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kikisen-VC (音声認識・音声合成・翻訳・擬似VCツール)

Overview

Text to speech, speech to text, auto-recognized translation system. I want it in this software.

イメージ

普段聞き専の方向けの汎用擬似VCツールです。ゲーム等で使用できます。

各種APIで音声認識を行い、以下の機能を実現することを目指します。

  1. 機械音声を合成しての発声代替機能
  • text-to-speechのAPIを利用して多彩な音声・カスタマイズを提供
  1. ループバックサウンドから音声認識しての翻訳聴き専機能
  • 英語圏・中華圏等でプレイ中のVC聞き専できる機能を提供

New Features!

  • 2017/06/17 初回公開。
  • 2017/06/24 BingSpeechAPIの暫定追加。GoogleCloudSpeechAPIと比べて大声で話す必要がある。辞書機能はまだ対応していません。
  • 2017/07/01 BingSpeechAPIに単語辞書を追加するにはCustom Speech Serviceというのに申し込む必要がある模様。諦める。
  • 2017/07/11 簡易的なログ読み上げ機能を実装。テキストチャットログファイルを監視して読み上げます。テキストチャット見逃し防止にどうぞ。
  • 2017/07/16 簡易ログ読み上げ機能が面白かったので強化。各人ニックネームを認識して、音声を固定する機能を実装。
  • 2017/07/17 OCRでのテキストチャット読み上げ機能を実装。作ってみてテストして、使い物にならない精度であることが分かった程度。ネタ機能にもならないが実装を捨てるのがもったいないのでコミット。
  • 2017/07/29 音声認識発声機能がバグってメタメタだったので再調整。APIの更新に合わせて動作も変わっていた模様。だいぶ良くなったと思うのでテスト待ち。
  • 2017/09/09 MS音声認識を利用したラジオチャットモードを一応実装。それに伴い初期語彙を増やした。ラジオチャットモードは語彙を増やしたら使い物にならなくなった・・。それこそ「v52!」とか記号的な発言で動かしたほうが認識するかもしれない。Windows付属のトレーニングを1時間かけてやったが認識率は向上しなかった。。語彙は、ボイスチャットモードの認識辞書にフィードバックしたので、Appdata/Local/Kikisen-VC/うんぬんにある設定ファイルを初期化すると初期語彙が大量に登録されます。一応ArmaとかPUBGで使える語彙は洗い出したはず。
  • 2017/11/05 Intel Realsenseに対応しました。こちらからDLしてインストールしてください。詳しいインストールオプションはNAMAROIDさまのほうを参考にしてください。暫定対応なので、単語辞書等は使えません。
  • 2017/11/05 OpenJTalkを組み込みました。ネット上に公開されている.htsvoiceファイルを探してopen_jtalkフォルダに設置すると多彩なボイスを楽しめます。
  • 2017/11/05 ラジオチャットモードにIntelReakSence用を追加しました。
  • 2017/11/12 いったん区切りとしてコミット。今の時点で機械に通訳はできそうにないので、別の方向性を考える必要がありそう。という結論。今後はラジオチャットに特化した方向等、なにがしかの工夫で今の時点の技術と付き合う方法を探る予定。

Description (各機能の概要、開発経緯、特徴)

  1. 機械音声を合成しての発声代替機能

VCは環境音が混ざるのが嫌、少し気恥ずかしい。でもVCで発言してみたい。それが開発動機でした。外部仮想サウンドデバイス作成ソフトの導入が必要ですが、合成音声で混じりっ気なしの合成音声によるVCが実現できます。

Windowsならばデフォルトの音声認識APIを利用することもできます。ですが、トレーニングしないととても使い物にならない認識精度です。できれば外部APIを利用するオプションを検討してください。

  1. ループバックサウンドから音声認識しての翻訳聴き専機能

海外サーバーでゲームをしているとVCが活発で驚きます。ただ何を言ってるのかさっぱり聞き取れません。せっかく音声認識・合成発声ソフトを作ったのだから、外国語の聞き取り→翻訳→日本語で発声まで実現できないかなと思って実装してみました。

ですが、いまのところ使い物にならない実験的な機能です。このままひとりで開発していても実用的な機能には至らないと思いました。GitHubにソフトを公開することで、一人でも多くの人がコンセプトに興味を持ってくれ、開発に参加を検討してくれることを望みます。

利点
  • GoogleCloudSpeechAPIを利用した場合は高い認識率
  • VoiceTextWebAPIを利用した場合は多彩な機械音声
  • 発声代替機能は、マイク代替なのでVCが使える全てのゲームで動作可能
  • 雑音や咀嚼音、ため息、キーボード音や環境音など入らない純粋な発声代替機能
  • 聞いた英語の日本語訳がすぐわかるので英語学習能力もUpするかもしれません。将来的に。
  • new! OpenJTalkを組み込みました。.htsvoiceファイルを探してopen_jtalkフォルダに設置すると多彩なボイスを楽しめます。
  • new! Intel Realsenseに対応しました。こちらからDLしてインストールしてください。詳しいインストールオプションはNAMAROIDさまのほうを参考にしてください。暫定対応なので、単語辞書等は使えません。
欠点
  • クラウドAPIを使う場合、回線状況によってはpingに影響を及ぼす
  • NetduettoやVirtual Audio Cables等の仮想サウンド作成デバイスの併用が必要

類似ソフト

  1. 同様コンセプト系ソフト - NAMAROID - ゆかりねっと
  2. ソフト組み合わせで実現系、似たようなコンセプト - 【棒読みちゃん】LINEやSkypeの通話でゆっくりボイスを使ってみた - 棒読みちゃんをマイク代わりに使う - Windows標準の音声認識ソフトでテキストを入力する方法【マイク】 - 各種チャット用 音声入力Toolによる作業しながらのゆっくり生放送に挑戦してみる(ゆっくり増産計画) - SERIFU -script text to speech tool- - 棒読みちゃんプラグイン Voicetext Talk Ver1.5.0.0

Licence

使用は自由ですが、改変しての再配布はソースを開示してください。

Requirement

Usage

  • 発声代替機能の使い方の設定例等

    1. 仮想サウンドデバイス作成ソフトをインストールして、録音側を「既定のデバイス」に設定します。
    • イメージ
    • 仮想サウンドデバイスを「既定のデバイス」に設定しておけば、無設定で機械音声だけをマイク出力させることができます。自分の声は相手に伝わりません。
    1. 「Inputデバイス」に使用中のマイクを指定します。
    2. 「Outputデバイス」に仮想サウンドデバイスを指定します。
    • イメージ イメージ
    1. 「音声認識API」「SpeechAPI」を適当に選んで設定します。Microsoft Harukaを使うとPingへの影響が軽減されるかもしれません。OpenJTalkも同様。
    2. 「翻訳API」を「翻訳なし」に設定します。「翻訳設定」を「Jpn→Eng」に設定します。
    • イメージ イメージ
    1. 必要に応じて「単語辞書」に発声単語を登録しておきます。
    2. マイクに喋ります。選択した「SpeechAPI」を使って発声が行われます。(イメージ)
    • イメージ イメージ
  • 翻訳聴き専機能の使い方の設定例等

    1. 「Inputデバイス」に「Wasapi Loopback」を指定します。
    • イメージ
    1. ※要課題「Outputデバイス」にお使いのスピーカー・ヘッドセットを選択します。現在プログラムの問題で、お使いのデバイス以外のものを選べる場合はそれを指定してください。(イヤホンなど併用できる場合はそれを使うなど)
    • イメージ
    1. 「音声認識API」「SpeechAPI」を適当に選んで設定します。Microsoft Harukaを使うとPingへの影響が軽減されるかもしれません。
    2. 「翻訳API」「API key」にGoogleTranslatorAPIのWebkeyを入力して認証します。
    • イメージ
    1. 「翻訳API」を「GoogleTranslatorAPI」に設定します。「翻訳設定」を「Eng→Jpn」に設定します。
    • イメージ イメージ
    1. 「翻訳設定」を「Eng→Jpn」に設定して、「翻訳API」を「翻訳なし」にすると英語のまま認識を出力されるかもしれません。

Problems

課題
  • 翻訳聞き専機能はループバックサウンドをキャプチャするため、翻訳発声も拾ってしまう。
    • 英語→日本語の場合でも、カナ英語など混じるとVCと勘違いして二重に翻訳が動く。
    • 対策としては翻訳発声のサウンド出力を既定出力サウンドデバイスと違うものに変える必要があるが、通常はヘッドセット一本で使用していると思われるため、現実的ではない。
  • GoogleCloudSpeechAPIや、GoogleTranslatorAPIなどの利用は有料。API呼び出し回数はできるだけ抑える必要があるが、レスポンスを高めるためストリーミング音声認識APIを利用すると、1分あたり1回のAPI呼び出しが必須。時間課金と変わらない。
  • GoogleTranslatorAPIも課題は山積み。API呼び出し回数を抑えるためには出来るだけ高い精度で文脈の区切りを見つけて翻訳APIに投げる処理が必要。現在はその処理が甘く、二重三重呼び出し・区切りが甘い等でとんでもない回数APIを呼び出してしまう。1分で100回くらい。。
  • 音声認識APIはAPIによって違う処理の実装が必要。さらに言語によっての最適化が必要。その最適化処理がまだまだ甘い。
  • 音声認識APIにIntel Real Senseを選べるようにしたい。ローカルエンジンなので、Ping影響なしに使える利点がある。
    • Intel Realsense SDKは2016R3から有料配布になった模様。普通の方法ではDLできないので中止。
    • 代わりにBing Speech APIを使いたい。月5000トランザクションまで無料なので、1トランザクション14秒制限はあるが、単純計算で14sec * 5000tra = 70000sec, 月19.4時間までは無料で使えそうな勘定。1回2時間のゲームセッションを月10回は聞き専としては妥当だと思う。
  • 翻訳APIに無料のものがあれば使いたい。有料しかなさげ。
  • GoogleCloudSpeechAPIは、2017/7/31までにGA版にアップデートが必要。まだ対応できていない。

Samples

イメージ

  • 音声入出力デバイス設定関係(設定詳細はUsageを参照のこと)

    • イメージ イメージ
  • 音声認識API設定関係(認証JSONファイルを指定してください)

    • イメージ イメージ
  • VoiceTextWebAPIを利用した場合(ここでAPIkey設定、ログ出力もここ)

    • イメージ イメージ イメージ イメージ
  • 翻訳設定関係(ここで設定)

    • イメージ イメージ イメージ
  • ステータス関係(ここで大体の状況を認識)

    • イメージ
  • 単語辞書機能(入力すると自動保存されます、「|」パイプ区切りで入力)

    • イメージ
  • 音声認識ログサンプル(GoogleCloudSpeechAPI使用の場合)

    • 日本語でのマイク入力→発声代替機能ログ
      • イメージ イメージ
  • 英語でのループバック入力→翻訳聴き専機能

    • 開発版での英語のまま音声認識したイメージ(Insurgencyの海外鯖プレイ動画を認識)

      • イメージ
    • 日本語への翻訳イメージ(Insurgencyの海外鯖プレイ動画を認識)

      • イメージ
    • 日本語への翻訳イメージ(「家出のドリッピー」朗読動画を認識)

      • イメージ

About

Text to speech, speech to text, auto-recognized translation system. I want it in this software.

License:GNU General Public License v3.0


Languages

Language:C# 100.0%