音声で Visual Studio を操作する

Development,Pronama-chanVisual Studio

Qiita Visual Studio / Visual Studio Code Advent Calendar 2015 17日目と、Qiita プロ生ちゃん Advent Calendar 2015 14日目(穴埋め)の投稿です。

Visual Studio といえば

Visual Studio といえば、プロ生ちゃん。

Microsoft TechDays Korea 2015
Microsoft TechDays Korea 2015

そんなプロ生ちゃんが、「アキバで見かけた萌えキャラコンテスト」にエントリーされています。「暮井 慧(プロ生ちゃん)」への投票お願いします(12/18 20時まで)。プレゼントも当たります。

音声で Visual Studio 操作

というわけで、音声でプロ生ちゃんに Visual Studio の操作を手伝ってもらいます。

エディタの背景は大人気「プロ生ちゃん IDE」。

流行りの Cortana さんではなく、Windows Speech API です。

Voice Commands

利用したのは、Microsoft 社員の方が作っている VS 拡張の「Voice Commands」。

使い方は、Alt+V の後にコマンドを音声入力します。たくさんのコマンド に対応していますが、英語です。Build と何度言っても認識してくれません。

毎回、Alt+V を入力するのが少しネックです。

日本語コマンド対応

今回、この Voice Commands を少しだけ修正して使いました。GitHub にソースコードが公開されています。ライセンスは、MS-RL です。

日本語の音声認識

プロ生ちゃん版(日本語版)に対応するための、コードの修正箇所は次の通りです。

VoiceExtensionPackage.cs 内の SpeechRecognitionEngine のコンストラクタ引数を指定して日本語を音声認識するようにします。


_rec = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("ja-JP"));

日本語のコマンド登録

commands.txt を修正して日本語のコマンドを入力します。「|」の左側が音声での入力を受け付ける言葉です。commands.txt をパースしているのは、CommandTable.cs の CommandTable クラスです。

ビルドして|ClassViewContextMenus.ClassViewProject.Build
実行して|Debug.Start
整形して|Edit.FormatDocument

また、コード中にある “yes"・"no"・"what can I say" の直接記述されているコマンドを日本語に変えます。特に CommandTable クラス部分は変えないと動作しません。


Commands = new Dictionary<string, Command>() { { "はい", null }, { "いいえ", null }, { "教えて", null } };

view raw

CommandTable.cs

hosted with ❤ by GitHub

yes・no は聞き返すためですが、試してみた感じではその処理は呼ばれませんでした。

プロ生ちゃんボイス

プロ生ちゃんボイス は、kei_voice_201308.zip.zip から kei_voice_023_1 と kei_voice_023_3 。適当に音声再生のコードを入れましょう。


var snd = new SoundPlayer(Properties.Resources.kei_voice_023_1);
snd.Play();

以上です。修正したコードは、(全然作りこんでないので)配布していません。