使い方
用意するのは.envファイル1つだけです。インストーラーも、アプリ側の設定画面もありません。
セットアップ
zipをダウンロードして解凍する
Releasesから
VoiceHook-vX.Y.Z-windows-x64.zipを取得して、好きな場所に展開します。中身はexeと.env.example、使い方のテキストです。.envを作る.env.exampleをコピーして.envにリネームし、exeと同じフォルダに置きます。書き換えるのは送信先のURLだけで動きます。# 録音した音声の送信先 Webhook URL WEBHOOK_URL=https://example.com/webhook/xxxxx # Basic 認証。要らなければ空のままでよい BASIC_AUTH_USER= BASIC_AUTH_PASS= # 録音に使う入力デバイス名(部分一致)。空なら OS の既定を使う TARGET_DEVICE_NAME= # Ogg Opus の目標ビットレート(kbps)。既定 64 AUDIO_BITRATE_KBPS=64.envには送信先のURLや認証情報が入ります。リポジトリにコミットしないでください。起動して、話して、Enter
exeを開くとその場で録音が始まります。EnterかSpace(または「送信」ボタン)で送信、Esc(または「破棄」)で捨てられます。送信に成功するとウィンドウは自動で閉じます。
.envの設定項目
exeと同じフォルダに置いた.envが最優先で読まれます。同じものが.env.exampleにも入っています。
| キー | 要否 | 内容 |
|---|---|---|
WEBHOOK_URL | 必須 | 録音した音声の送信先。?source=pcのようなクエリパラメータが必要なら、このURLに直接含めます。 |
BASIC_AUTH_USER | 任意 | Basic認証のユーザー名。認証が要らない受け口なら、空のままで構いません。 |
BASIC_AUTH_PASS | 任意 | Basic認証のパスワード。ユーザー名と両方が入っているときだけAuthorizationヘッダーが付きます。 |
TARGET_DEVICE_NAME | 任意 | 録音に使う入力デバイス名を部分一致で指定します。空ならOSの既定の入力デバイスを使います。スペースを含む値は二重引用符で囲みます。 |
AUDIO_BITRATE_KBPS | 任意 | 送信するOgg Opusの目標ビットレート。既定は64、指定できる範囲は6〜510です。 |
Webhookが受け取るリクエスト
送られてくるのはOgg Opusファイルの生バイナリです。受け取る側ではJSONとしてではなく、ファイルとして扱ってください。本文の大きさは64kbpsでおよそ8KB/秒、1分の録音で0.5MB程度です。
| メソッド | POST |
|---|---|
| URL | WEBHOOK_URLをそのまま使う |
| Content-Type | audio/ogg |
| 本文 | Ogg Opusファイルの生バイナリ(JSONではありません) |
| Authorization | Basic認証を設定したときだけ付与 |
| 成功の判定 | HTTPステータスが2xxなら成功 |
POST /webhook/XXXXXXXX HTTP/1.1
content-type: audio/ogg
authorization: Basic XXXXXXXXXXXXXXXX
content-length: 8396
host: example.com
OggS........OpusHead....n8nのWebhookノード、Make、自前のサーバなど、バイナリ本文を受け取れる受け口ならどれでも使えます。文字起こしや要約に流したいときも、この本文をそのまま音声ファイルとして渡せます。
ホットキーで起動する
毎回exeを探しに行くのが面倒なら、Windows標準のショートカット機能でキーを割り当てられます。アプリ側の設定は要りません。
VoiceHook.exeのショートカット(.lnk)を作る。ショートカットのプロパティを開き、「ショートカットキー」に好きなキー(例: Ctrl+Alt+R)を設定する。
ショートカットをスタートメニューかタスクバーに置く。
これで、どのアプリを使っていてもキー一発で録音を始められます。
うまくいかないとき
- 「デバイスが見つかりません」と表示される
TARGET_DEVICE_NAMEに書いた名前のデバイスが見つかっていません。名前は部分一致で探すので、一部だけでも構いません。指定を空にすると、OSの既定の入力デバイスで録音します。内蔵マイクで録り違えるのを防ぐため、見つからないときは録音を始めずに止まります。- 送信に失敗する
- ウィンドウにエラーの内容が出ます。URLの綴り、Basic認証、受け口が
audio/oggの生バイナリを受け取れるかを確かめてください。録音は手元に残っているので、「再送信」で録り直さずに試せます。 - 起動しても何も起きない
.envがexeと同じフォルダにあるか確認してください。WEBHOOK_URLが無いと動きません。cargo runで動かしているときは、プロジェクトのルートに置いたものが読まれます。- 音質を上げたい
AUDIO_BITRATE_KBPSを96〜256あたりに上げます。そのぶん送信するファイルは大きくなります。音声メモの用途なら、既定の64で足ります。
自分でビルドする
WindowsとRust(MSVCツールチェーン)、それにcmakeが必要です。cmakeはaudiopusがlibopusを同梱ビルドするために使われます。
# 開発時の起動確認
cargo run
# リリースビルド(target/release/VoiceHook.exe)
cargo build --releaseコードはリポジトリにあります。