今回のお題
Visual Studio Code(以下「VS Code」)が、今年2月のアップデートで音声入力に対応しました。(「Voice dictation in editor」)
そこで今回は、この音声入力機能の紹介と「実際に音声入力でコーディングはできるのか?」を試してみました。
アジェンダ
- 音声入力の導入手順
- 音声入力でコーディング
- 生成AIの力を借りる
- AIチャットで音声入力を試す
- まとめ&おまけ(新年のあいさつ)
音声入力の導入手順
まず、VS Code拡張機能の「VS Code Speech」をインストールします。
VS Code Speech - Visual Studio Marketplace
その後VS Codeの「設定」で、「Accessibility > Voice:」以下の下記3項目について、必要に応じて下記項目を設定します。(「Speech Language以外」は、デフォルト値のままで問題ないと思います)
項目 | 説明 | デフォルト値 | 備考 |
---|---|---|---|
Speech Language | 音声入力する言語 | 英語(米国) | プログラム言語ではない |
Speech Timeout | 音声入力を停止した後、入力した音声をファイルに出力するまでの待ち時間(ミリ秒) | 1200 | 音声入力を停止した後、この時間が経過したら入力した音声をファイルに出力する |
Keyword Activation | 「Hey, Code」と音声入力することで音声入力モードを有効にするかどうか(Google Homeの「OK, Google」みたいな機能) | off(しない) | ・有効にする場合、いくつかモードがある。(本記事では使用しないので省略) ・有効にする場合「Hey, Code」の音声はファイル出力されない |
最後に、何かのファイルを開いて「Ctrl + Alt + V」を押すとマイクのアイコンが表示され、音声入力モードが有効になります。(終了する際はEscキーを押す)
また、先述の「Keyword Activation」を有効にしている場合、「Hey, Code」と音声入力しても音声入力モードが有効になると思います。(未検証)
音声入力でコーディング
では、実際に音声入力でコーディングを試してみます。
サンプルとして、少し前にX(Twitter)で話題になった「うるう年を判定する関数」をコーディングしてみます。(下記コードを参照)
// yearは西暦 function isLeapYear(year: number): boolean { if (year % 400 === 0) return true; if (year % 100 === 0) return false; return year % 4 === 0; }
そこで、上記のコードを音声入力でコーディングしようとしたのですが...
結果としては、なかなか音声をうまく認識せず、「自分で書いた方が速い」という結果になりました...(自分の英語力が残念なせい?) *1
とにかく、音声認識の精度が良くないのがネックでした。
あと「()」「{}」「,」など、記号に関してはどうしようもないですね...
ただ、上記のことを割り切ったうえで「ある程度のレベルまでは音声入力で対応する」のであれば、問題ないと思います。
ちなみにこれ、めっちゃ流暢に英語話せる人やアメリカ人の方が音声入力したら、思った通りのコードになるんだろうか...?
生成AIの力を借りる
という訳で、音声入力でコーディングはうまくいきませんでした。(英語力が残念なせいもあるかもしれないけど)
が、今は「生成AI」という便利なものが存在します。
そこで、今度は以下の方法を試してみます。
- コメントに関数の内容を記載する。(ここを音声入力する)
- 実際の関数はGitHub Copilotに生成させる。(提案は全て最初のものを採用する)
これなら日本語でも大丈夫なので、英語力が残念でも関係ないです。
こちらに関しては、結果的にはちゃんと関数を作成してくれました。(ちょっとコメントが冗長な気がしますが)
という訳で、音声入力でコーディングするのは、音声認識の問題でハードルが高そうなので、現段階では「処理のコメントを音声入力し、実際のコード作成はAIに任せる」のが良さそうな気がします。
てか、それって結局AIにコード作成してもらうのとあまり変わらないような...
AIチャットで音声入力を試す
また先述の「VS Code Speech」のページの「Getting Started」に「GitHub Copilot Chatでも音声入力が可能」という記載があったので、さっそく試してみました。
確かに、概ねGitHub Copilot Chatでは音声入力がいい感じに動作しているので、これは使えそうですね。
なお残念ながら、Amazon Q(「AWS Toolkit」拡張機能で使用可能)では、音声入力は動作しませんでした。
まとめ
以上、音声入力でコーディングできるかどうかの実証結果でした
結果的には、直接コーディングは難しそうですが、生成AIを併用する分には便利になりそうです。
また、音声認識の精度が改善されれば、いずれ音声入力だけでコーディングが可能になる時が来るかもしれませんね。
おまけ(新年のあいさつ)
これが今年最初の記事ですが、気が付けが前回の記事を投稿してから、もう80日近く経過してるんですね。
本当は今年も1月からアウトプット活動を行う予定だったのですが、昨年末に体調を崩してしまい、ブログ・登壇含め、アプトプット活動が全然できませんでした。
が、少しづつではありますがようやく復調の兆しが見えてきたので、そろそろ可能な範囲でブログ・登壇などのアプトプット活動を再開していこうと思います。
もう3月ですが、今年もよろしくお願いします。
それでは、今回はこの辺で。