取り組みの背景
現代の開発環境では、常にキーボードに向かっていることが前提とされています。しかし Aqua Voice を使用すれば、音声コマンドのみでアプリケーション開発を完結させることが可能です。
本ガイドは、Aqua Voiceを使った完全ハンズフリーワークフローを実現するための実践的な知識をお届けします。既存の音声コーディング概要記事とは異なり、「どのように実務開発を音声で行うか」に焦点を当てています。
Aqua Voice とは
Aqua Voice は、macOS と Windows で動作する高精度音声認識エディタプラグインです。以下の特徴があります:
- 高精度認識: 自然言語処理による99%以上の精度
- リアルタイム処理: 遅延最小限の音声入力
- 複数エディタ対応: VS Code、Cursor、JetBrains IDE など
- カスタマイズ可能: ユーザー定義コマンドと略語設定
- オフライン動作: インターネット接続不要(ローカル処理)
セットアップ
macOS での設定
1. システムマイク権限の付与
# Aqua Voice にマイクアクセス権を付与
# システム設定 > セキュリティとプライバシー > マイク
# Aqua Voice をリストに追加2. Aqua Voice のインストール
brew install aqua-voiceまたは、公式サイト からダウンロード。
3. VS Code 拡張のインストール
- VS Code を開く
- 拡張機能 (Cmd+Shift+X) から「Aqua Voice」を検索
- 「Install」をクリック
4. 初期設定
aqua-voice setup --platform macos対話的に以下を設定:
- マイク選択(外部マイク推奨)
- 言語(日本語または英語)
- ホットキー(例: Option+V で起動)
Windows での設定
1. システムマイク権限の付与
設定 > プライバシーとセキュリティ > マイク > アプリのマイクアクセスを許可
2. Aqua Voice のインストール
choco install aqua-voiceまたは、公式サイトからダウンロード。
3. VS Code 拡張のインストール
- VS Code を開く
- 拡張機能 (Ctrl+Shift+X) から「Aqua Voice」を検索
- 「Install」をクリック
4. 初期設定
aqua-voice setup --platform windows音声コマンドの基本
起動と停止
「リッスン開始」 → マイクアイコンが赤色に変わり、音声入力待機状態に
「リッスン終了」 → マイク停止
ファイル操作
ファイル作成
「新規ファイル」+ 「ファイル名は index.js」
→ index.js が作成される
ファイルを開く
「ファイルを開く」+ 「App.tsx」
→ App.tsx が VS Code で開かれる
ファイル保存
「保存」
→ 現在のファイルが保存される
「全て保存」
→ 全ファイルが保存される
ファイル削除
「削除」+ 「確認」
→ 現在のファイルが削除される
ナビゲーション
行番号への移動
「ゴー トゥ ライン」+ 「42」
→ 42行目に移動
シンボルへジャンプ
「ゴー トゥ シンボル」+ 「handleClick」
→ handleClick 関数に移動
検索
「検索」+ 「useState」
→ useState をプロジェクト内で検索
置換
「置換」+ 「oldName」+ 「newName」
→ oldName を newName に置換
エディタ操作
カーソル移動
「カーソル ライン エンド」→ 行末に移動
「カーソル ライン スタート」→ 行頭に移動
「カーソル ワード フォワード」→ 次の単語に移動
「カーソル ワード バック」→ 前の単語に移動
選択
「セレクト ライン」→ 現在行を選択
「セレクト ワード」→ 現在の単語を選択
「セレクト オール」→ 全て選択
コピー・ペースト・削除
「コピー」→ 選択テキストをコピー
「カット」→ 選択テキストをカット
「ペースト」→ クリップボードから貼り付け
「デリート」→ 選択テキストを削除
「アンドゥ」→ 操作を戻す
「リドゥ」→ 操作をやり直す
VS Code / Cursor との統合設定
Aqua Voice の設定ファイル編集
# 設定ファイルを開く
aqua-voice config editJSON 形式の設定例:
{
"language": "ja",
"editor": "vscode",
"hotkey": "alt+v",
"autoCommit": true,
"suggestions": true,
"customCommands": [
{
"voice": "コンポーネント作成",
"action": "create-react-component"
},
{
"voice": "テスト実行",
"action": "run-tests"
}
]
}Cursor への統合
Cursor(Claude が統合されたエディタ)使用時:
- Aqua Voice 拡張をインストール
- Cursor 設定ファイルを編集:
{
"aqua-voice.enabled": true,
"aqua-voice.language": "ja",
"aqua-voice.claudeIntegration": true
}- Aqua Voice コマンドから Claude に指示を直接送信可能:
「Claude に聞く」+ 「このコンポーネントのリファクタリング提案をして」
→ Claude がコード解析と提案を実行
カスタムホットキー設定
aqua-voice hotkey set --trigger "cmd+shift+v" --action "voice-input"音声でのコード記述テクニック
変数名の発音方法
プログラミングの変数名は、特殊なルールで音声入力します:
キャメルケース
「キャメル handleButtonClick」
→ handleButtonClick が入力される
「キャメル getUserData」
→ getUserData が入力される
スネークケース
「スネーク user_profile」
→ user_profile が入力される
「スネーク max_width」
→ max_width が入力される
パスカルケース
「パスカル UserProfile」
→ UserProfile が入力される
括弧とブレースの指定
「オープンパレン」→ (
「クローズパレン」→ )
「オープンブレース」→ {
「クローズブレース」→ }
「オープンブラケット」→ [
「クローズブラケット」→ ]
演算子とシンボル
「プラス」→ +
「マイナス」→ -
「アスタリスク」→ *
「スラッシュ」→ /
「イコール」→ =
「ダブルイコール」→ ==
「トリプルイコール」→ ===
「ノットイコール」→ !=
「アンドアンド」→ &&
「オアオア」→ ||
「パイプ」→ |
「ドット」→ .
「セミコロン」→ ;
「コロン」→ :
「コンマ」→ ,
「アット」→ @
「ハッシュ」→ #
改行とインデント
「改行」→ Enter キーを押す(新規行に移動)
「インデント」→ Tab キーを押す(インデント追加)
「アウトデント」→ Shift+Tab(インデント削除)
Claude Code との連携
音声指示による自動コード生成
Cursor または Claude Code 統合環境では、音声で Claude に直接指示を送信できます:
「Claude に聞く」+ 「React の Counter コンポーネント作成」
→ Claude がコンポーネント実装を自動生成
「Claude に聞く」+ 「useEffect で API 呼び出し追加」
→ Claude が該当部分を修正・追加
複数ファイルの同時操作
「複数ファイル編集開始」
「App.tsx に import 追加」
「utils.ts に関数作成」
「編集完了」
→ 複数ファイルが一括更新される
コード生成後の確認
音声で Claude に生成内容の確認を依頼:
「Claude に聞く」+ 「このコードでエラーはないか確認」
→ Claude が静的解析と提案を実行
デバッグ・テスト実行を声だけで
テストの実行
「テスト実行」→ npm test が実行される
「テスト App」→ App.test.js が実行される
「カバレッジ」→ coverage レポートが生成される
ビルド実行
「ビルド」→ npm run build が実行される
「ビルド プロダクション」→ 本番ビルドが実行される
デバッガーの起動
「デバッガー開始」→ VS Code デバッガーが起動
「ブレークポイント」+ 「現在行」→ 現在行にブレークポイント設定
「コンティニュー」→ 実行を再開
「ステップオーバー」→ 次のステップに進む
「ステップイン」→ 関数内に入る
「ステップアウト」→ 関数から抜ける
サーバー起動
「サーバー開始」→ npm start が実行される
「サーバー停止」→ サーバーが停止される
実践例:React コンポーネント作成フロー
では、実際に音声だけで React コンポーネントを作成するの全体フローを見てみましょう。
ステップ 1: ファイル作成
「新規ファイル」+ 「ファイル名は Counter.jsx」
VS Code に Counter.jsx が作成されます。
ステップ 2: インポート文の追加
「タイプ」+ 「import React, { useState } from 'react';」
または Claude に委譲:
「Claude に聞く」+ 「必要な import を追加して」
ステップ 3: コンポーネント骨組みの作成
「Claude に聞く」+ 「Counter という関数コンポーネントの基本構造を作成」
Claude が自動的に以下を生成:
export default function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>
Increment
</button>
</div>
);
}ステップ 4: スタイル追加
「クローズブレース」→ } の前に移動
「改行」+ 「改行」
「タイプ」+ 「const styles = { ... }」
または:
「Claude に聞く」+ 「Tailwind CSS でコンポーネントをスタイル」
→ className 属性が自動追加される
ステップ 5: テストファイル作成
「新規ファイル」+ 「ファイル名は Counter.test.jsx」
「Claude に聞く」+ 「Counter コンポーネントの単体テストを生成」
ステップ 6: テスト実行
「テスト実行」
→ npm test が実行され、テスト結果が表示される
ステップ 7: ファイル保存
「全て保存」
ステップ 8: 動作確認
「サーバー開始」
→ npm start が実行され、ブラウザで動作確認可能
この一連の流れがすべて音声コマンドで完結します。
音声開発のベストプラクティス
マイク選択
- 外部マイク推奨: 内蔵マイクより高精度
- ノイズキャンセリング機能: 背景音の除去
- マイク位置: 口から 15-20cm の距離が最適
推奨モデル:
- Blue Yeti(USB)
- Audio-Technica AT2020
- Shure SM7B
発音のコツ
- はっきり話す: 機械的になりすぎず、自然な発音
- ポーズを入れる: 複雑なコマンドは句切りを挟む
- 方言を避ける: 標準日本語または標準英語
効率的なワークフロー設計
- 声で効率的な操作: 複雑な入力は Claude に委譲
- 複数コマンドの組み合わせ: マクロ機能で高速化
- 定期的なBreak: 音声入力は疲労しやすい
認識エラー時の対応
「訂正」+ 「正しいテキストを入力」
→ 直前の入力が修正される
「最後を削除」
→ 直前に入力したテキストを削除
「やり直し」
→ 最後のコマンドを取り消す
音声開発の限界と注意点
認識の正確性に依存
完全な音声開発は理想的ですが、以下のシナリオでは音声入力の精度が低下します:
- 特殊文字が多い: 正規表現やシェルスクリプト
- 複数言語の混在: コード内の日本語コメントと英語キーワード
- 背景雑音: カフェやオフィスなど
パフォーマンスへの影響
長時間の音声入力は CPU 負荷を増加させます:
- 音声認識エンジンが常に稼働
- エディタの反応速度が若干低下することがある
音声疲労
- 8 時間連続の音声開発は現実的ではない
- 1-2 時間ごとの休息が推奨される
- 音声コマンドと手入力のハイブリッドが最適
セキュリティ考慮
- 公開環境では API キーを声で読まない
- マイクが常時リッスン状態でないことを確認
- 機密情報の入力は手入力で実施
トラブルシューティング
マイクが認識されない
# macOS
defaults read com.apple.speech.synthesis.general
aqua-voice test-mic
# Windows
aqua-voice test-mic --verbose音声認識精度が低い
- マイクを再配置(口から 15-20cm)
- バックグラウンドノイズを減らす
- マイク入力レベルを調整:
aqua-voice config set --microphone-level 75- 言語モデルを再トレーニング:
aqua-voice train-model --language jaエディタが反応しない
# Aqua Voice を再起動
aqua-voice restart
# VS Code との接続をリセット
aqua-voice reset-connectionまとめ
Aqua Voice による完全ハンズフリー開発は、以下のような利点をもたらします:
- 姿勢の自由度向上: キーボード作業の物理的負担を軽減
- 集中力の維持: 手の動きを最小化し、思考に集中
- アクセシビリティ向上: キーボード操作が困難なユーザーに対応
ただし、現状では音声のみでの完全開発よりも、音声とキーボードのハイブリッドアプローチが最も実用的です。
Claude Code との組み合わせにより、音声で高レベルな指示を出し、Claude が詳細な実装を担当するというワークフローが、最も効率的で快適な開発体験をもたらします。