Skip to content

SR2C, Speech Recognition to Control tool - Receive the SR result , map to the in-game command, execute key-inputs.

License

Notifications You must be signed in to change notification settings

Domtaro/SR2Control

Repository files navigation

SR2Control (Speech Recognition to Control)

概要

SR2Control(エスアール・トゥー・コントロール)は、自分がマイクに向かって話した言葉を外部の音声認識(Speech Recognition, SR)システムから受け取り、特定の環境(特にPCゲーム)向けの命令として解釈し、その命令に対応するキーボード/マウス入力(Control)を代行処理するソフトウェアツールです。

同じく私が制作した、PCゲーム向け日本語音声コマンディングツール「TacspeakJP」の精神的後継ツールになります。

使用例

本格SWATタクティカルシューティング『Ready or Not』で使っている様子です。
動画サムネイル

機能・特徴

▼ 任意の外部音声認識システムから、認識結果のテキストを受け取ります。

音声認識処理を既製の外部ツールに任せることで、認識結果の品質を担保します。
また、音声認識システム側でサポートされてさえいれば、日本語以外の様々な言語で利用することができます。

現在実装している連携インターフェースは次の2種類です。

  • UDP受信
    UTF-8エンコードされた、認識結果テキストのみのシンプルなデータをUDP通信で受け取ります。※1
  • TCP受信 (ゆかコネNEO 棒読みちゃん連携)
    *nao*氏が公開しているリアルタイム字幕・翻訳・連携ツール「ゆかりねっとコネクターNEO」に備わっている、「棒読みちゃん連携」機能(TCPモード)から送られるデータを受信し、認識結果テキスト部分のみを取り出して使用します。

※1:使用例として、ゆかコネNEO向けのPython連携用UDP送信モジュール「YNCNEO_UDPTransfer」との連携を確認しています。

▼ 受け取った認識結果テキストをコマンドに解釈し、対応する入力操作を実行します。

特定のゲームタイトルなどに特化させ用意した「grammar」(コマンド解釈、入力実行を行うプログラムモジュール)を使って認識結果を処理し、「何の命令を喋ったか」「その命令に対応する入力は何か」を判断して実行します。

▼ ツールの挙動や対応する作品は、ユーザーが任意にカスタマイズ/追加することができます。

「grammar」はPythonソースコード(.pyファイル)の状態で用意しておき、メインプログラムの起動時にインポートされ実行される仕組みになっています。

つまり「grammar」のみを編集することで、開発環境を用意して再ビルドしたりすることなく、自分用に挙動をカスタマイズすることができるほか、新たに作成すれば、他にもPC上のあらゆるゲームや用途に使用することができます。

現在のところサンプルとして、『Ready or Not』用の「grammar」がツール標準で付属しています。

▼ 本ツール自体も、自由に改修可能です。

「SR2Control」はLGPL v3ライセンスのもと、オープンソースのソフトウェアとして公開しています。
足りない機能の追加や修正などがしたい場合にも、あなた自身で本ツールのソースコードを使用して自由に開発・公開することができます。

前提

  • Windows 10 64bit
    Windows 11でもおそらく動作しますが未確認です。動作報告歓迎します。
  • 任意の音声認識システム
    本ツールに認識結果テキストを受け渡すために、前述の連携インターフェースのいずれかに対応している必要があります。
    現在推奨環境として、「ゆかりねっとコネクターNEO」(を経由して利用する任意の音声認識システム)との連携を動作確認済みです

導入方法

  1. 最新の「SR2Control」をダウンロードし、任意の場所に展開します。
  2. 連携する音声認識システムをセットアップし、必要に応じて連携プラグインなども用意します。
  3. 利用目的のゲーム等に合わせて用意した「grammar」を、...\SR2Control\sr2ctrl\grammar\ディレクトリ下に格納します。

使い方

ロードマップ

今後追加を考えている機能、構想メモ等については、「プロジェクトロードマップ」を参照してください。

モチベーション・開発背景

私(開発者)は元々「SR2Control」の開発より前に、同じように音声認識・コマンド解釈・入力実行を行うツールとして、「TacspeakJP」というツールを制作していました。
(そして「TacspeakJP」には、さらに遡って「Tacspeak」という英語発話にのみ対応したオリジナル版が存在します。)

「TacspeakJP」は日本語発話に対応するために、Windows OS標準の音声認識API「WSR / SAPI 5' (Windows Speech Recognition / Microsoft’s Speech API version 5)」を使用していますが、これは2024年9月にサポート終了することが計画されていました。
サポート終了を迎えた暁には、Windows 11環境で一切動作しなくなることが予想されたため、後継ツールの制作を検討していました。

最終的に、

  • 自力で実装することが難しい音声認識部分は外部ツールに任せて、開発を省エネルギー化する
    また、高品質な既製音声認識システムの力で認識精度向上を図る
  • 独自実装する箇所はなるべくシンプルでコンパクトな実装とし、保守の容易性を高める
    また、重要な特徴である「ユーザー自身によるカスタマイズ」の難易度低下を図る
  • 汎用的なインターフェースを備え複数のツールと連携できることで、外部ツール事情の変化に備える

などの特徴と共に、 「なるべく長期に渡って利用可能なこと」「TacspeakJPの課題点を改善すること」 をコンセプトとして作られたのが、「SR2Control」です。

開発者向け情報(ビルド方法など)

開発者向け情報」を参照してください。

注意書き(主に免責)

  • 本プロジェクトは、開発者(Domtaro)個人の趣味によって運営され、またその成果物が無償で提供されています。
    従って、サポート期間や開発計画、成果物の仕様/動作/品質、使用に伴う悪影響や損害などについて、一切の保証・補償はできません。

  • 「SR2Control」は、その「キーボード/マウス操作をプログラムが機械的に代行する」という特徴から、 アンチチートツールなどの不正検知システムに、実際の悪意の有無に関わらず不正行為として検出されてしまう可能性が考えられます。
    (ただし2024年6月現在、実際に検出された事例は報告されていません。)

    「SR2Control」の使用に起因して発生した、BANやペナルティ、アカウント凍結などの損害について、開発者は一切責任を負いません。
    利用にあたっては、自己責任でお願いいたします。

    従って、以下のような特徴を持つゲームタイトル/ゲームモード/サービスと合わせて使用することは 推奨しません

    • 不正検知システムが備わっている
    • オンラインランキング/ランクマッチ等の機能を備え、公正な競争が求められる
    • 不特定の他人と対戦/一緒にプレイする機能を備え、他のプレイヤーに誤解や不快感を与えないことが求められる
    • そのほか、運営者/販売元/開発元に不適切なプレイと誤解される可能性がある

    また当然、嫌がらせや不正行為そのものを目的として使用することについては許容しません。

製作者

ライセンス

本プロジェクトは、GNU Lesser General Public License Version 3 (LGPL-3.0 またはそれ以上)に基づき公開されています。

About

SR2C, Speech Recognition to Control tool - Receive the SR result , map to the in-game command, execute key-inputs.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages