echo("備忘録");

IT技術やプログラミング関連など、技術系の事を備忘録的にまとめています。

【VS Code】音声入力でコーディングできるかどうかを検証してみた

今回のお題

Visual Studio Code(以下「VS Code」)が、今年2月のアップデートで音声入力に対応しました。(「Voice dictation in editor」)

code.visualstudio.com

そこで今回は、この音声入力機能の紹介と「実際に音声入力でコーディングはできるのか?」を試してみました。

アジェンダ

  • 音声入力の導入手順
  • 音声入力でコーディング
  • 生成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月ですが、今年もよろしくお願いします。

それでは、今回はこの辺で。

*1:本当は動画で見せたかったのですが、はてなブログは動画のアップロードができないため断念。他も同じ