はじめに
- GitHub Copilot Chat など VS Code 上のチャットで音声入力を活用したいニーズが増えています。
- VS Code Speech 拡張を導入し、日本語音声入力を前提に快適に使うための設定を整理しました。
- 自動送信への対策や CLI 連携のヒントなど、実際に運用して気づいたポイントもまとめています。
環境
- OS: Linux
- VS Code 1.9x 系(GitHub Copilot / Copilot Chat をインストール済み)
- 拡張機能: ms-vscode.vscode-speech
拡張機能の導入とショートカット整備
VS Code Speech を導入するとチャット欄やエディタにマイクアイコンが表示され、音声入力が可能になります。デフォルトでは音声入力後に即送信されるため、以下のようにショートカットを調整しました。
// .vscode/keybindings.json
[
{
"key": "ctrl+u",
"command": "workbench.action.chat.startVoiceChat",
"when": "!voiceChatInProgress"
},
{
"key": "ctrl+d",
"command": "workbench.action.editorDictation.start",
"when": "!editorDictation.inProgress"
},
{
"key": "ctrl+d",
"command": "workbench.action.editorDictation.stop",
"when": "editorDictation.inProgress"
}
]
-
ctrl+u: Copilot Chat で音声入力を開始。停止はマイクアイコンをクリックするかEscでキャンセル。 -
ctrl+d: エディタでディクテーションを開始/終了。 -
stopListeningAndSubmitを外すことで、キーを離した瞬間に送信される挙動を防げます。
日本語音声入力を既定にする
VS Code Speech は 26 言語に対応しており、設定で認識・合成言語を指定できます。ワークスペース設定に以下を加えると日本語が既定になります。
// .vscode/settings.json
{
"accessibility.voice.speechLanguage": "ja-JP"
}
- 反映されない場合は VS Code をリロードしてください。
- 音声応答の自動読み上げが不要な場合は
accessibility.voice.autoSynthesizeを無効のままにします(必要ならtrue)。
自動送信を抑制する運用
現状の VS Code Speech では録音終了時に自動送信される仕様を無効化できる設定がありません。運用のコツは以下の通りです。
- 録音終了直後、チャット入力欄がフォーカスされている状態で
Escを押すと送信をキャンセルできます。 - マイクアイコンで停止し、テキストを編集してから
Enterで送信する流れを徹底すると安全です。 - 公式 Issue Tracker にフィードバックすると、今後自動送信を選択制にできる可能性があります。
CLI(Codex CLI / Claude CLI)との連携ヒント
VS Code Speech は VS Code の UI コンポーネント内で動作するため、CLI から直接利用することはできません。以下のような代替案が考えられます。
- VS Code で音声入力 → テキストを整形 → CLI にコピー & ペースト。
-
whisper.cppやvoskなどの音声認識ツールを使い、スクリプトで CLI に渡すワークフローを構築。 - 将来的に CLI が音声入力 API を提供する可能性もあるため、公式情報をチェックする価値があります。
まとめ
- VS Code Speech 拡張と GitHub Copilot Chat を組み合わせることで、VS Code 内で日本語音声入力が実用的に使えます。
-
accessibility.voice.speechLanguageをja-JPに設定し、ショートカットを調整すれば誤送信を避けながら快適に入力できます。 - 自動送信は仕様上無効化できないため、
Escキャンセルや手動送信で運用するのが現状のベストプラクティスです。 - CLI と組み合わせたい場合は外部の音声認識ツールを併用する方法を検討してください。