BOOTH
BOOTH(Browser-based One-line Oral Take Handler)は、原稿テキストを1文ずつ画面に表示し、ユーザーがマイクで読み上げを録音するWebアプリケーションである。録音はすべてブラウザ上で完結し、サーバーを必要としない。各文の録音をOK/NG判定しながら進行し、OKと判定された音声は個別のWAVファイルとしてその都度自動ダウンロードされる。
ナレーション収録、朗読練習、音声教材の作成など、テキスト原稿を1行ずつ確実に読み上げて音声ファイル化したい場面で活用できる。Web Audio APIとMediaRecorder APIを組み合わせた録音機能と、JavaScriptによるWAVエンコードにより、外部ライブラリやサーバーサイド処理に一切依存しない軽量な構成を実現している。
概要
BOOTHは、フロントエンドのみで構成されたブラウザ完結型の原稿読み上げ録音ツールである。ユーザーは原稿テキストを貼り付け、改行区切りで分割された各文を1文ずつ画面に表示させながら、マイクで読み上げを録音する。録音した音声はその場で再生して確認し、OK/NG判定を行う。OKと判定された音声はWAV(PCM、16bit、モノラル)フォーマットで自動ダウンロードされ、次の文へ進む。NGの場合は録音データが破棄され、同じ文で再度録音を行う。
Web Audio APIおよびMediaRecorder APIによる録音と、JavaScriptによる手動WAVエンコードを組み合わせることで、外部ライブラリやサーバーサイド処理を一切使用しない。対応ブラウザはChromeを主対象とする。
特徴
- サーバー不要 — HTML / CSS / JavaScriptのみで構成。ブラウザ上で録音からWAV出力まで完結する
- 1文ずつ録音 — 原稿を改行で分割し、1文ずつ表示・録音・判定するワークフロー
- OK/NG判定 — 録音後に再生して確認し、OKなら自動ダウンロード、NGなら即座にやり直し
- WAV出力 — PCM 16bit モノラルのWAVファイルを個別にダウンロード
- 連番ファイル名 —
001_こんにちは本日はお日柄もよく.wavのように連番+冒頭20文字で自動命名 - 戻り操作 — 録音済みの文に戻って再録音が可能。新しい録音で上書きダウンロードされる
- インライン編集 — 未録音の文はクリックしてテキストを編集可能
- 視覚的な状態管理 — 未録音・現在の文・録音済みが色とアイコンで一目でわかる
- 録音中インジケーター — 赤い点滅インジケーターにより録音状態を明確に表示
技術構成
BOOTHはフロントエンド技術のみで構成されており、サーバーサイドの処理は一切使用しない。録音にはWeb Audio APIとMediaRecorder APIを使用し、取得した音声データをJavaScriptでWAVフォーマットにエンコードしてダウンロードする。
| 項目 | 技術・仕様 |
|---|---|
| フロントエンド | HTML / CSS / JavaScript(単一ファイル構成) |
| 録音 | Web Audio API + MediaRecorder API |
| 音声エンコード | JavaScriptによる手動WAVエンコード(外部ライブラリ不要) |
| 出力フォーマット | WAV(PCM、16bit、モノラル) |
| 対応ブラウザ | Chrome(推奨)。Web Audio API / MediaRecorderの互換性が最も高い |
| サーバー | 不要 |
使い方
手順1:原稿の準備
- BOOTHをブラウザで開く
- 原稿入力画面のテキストエリアに、読み上げたい原稿テキストを貼り付ける
- テキストは改行ごとに1文として分割される(空行は無視される)
- 「録音を開始する」ボタンをクリックして録音画面に遷移する
手順2:録音の実施
- 録音画面が表示され、最初の文が大きく表示される
- 「録音開始」ボタンをクリックし、マイクで文を読み上げる
- 読み終わったら「録音停止」ボタンをクリックする
- 「再生」ボタンで録音内容を確認する
- 問題なければ「OK(次へ)」をクリック → WAVファイルが自動ダウンロードされ、次の文へ進む
- やり直したい場合は「NG(やり直し)」をクリック → 録音データが破棄され、同じ文で再度録音を開始できる
- 全ての文がOK済みになると、完了メッセージが表示される
原稿入力画面
BOOTHを起動すると最初に表示される画面である。テキストエリアが1つ配置されており、ここにユーザーが原稿テキストを貼り付ける。貼り付けたテキストは改行ごとに1文として分割され、空行は無視される。原稿の入力が完了したら、「録音を開始する」ボタンを押すことで録音画面に遷移する。
| 要素 | 説明 |
|---|---|
| テキストエリア | 原稿テキストを貼り付ける入力欄 |
| 「録音を開始する」ボタン | クリックすると原稿を分割し、録音画面に遷移する |
| 分割ルール | 説明 |
|---|---|
| 改行 | 改行ごとに1文として分割される |
| 空行 | 無視される(文としてカウントされない) |
ただいまより、説明を開始いたします。
まず最初に、概要からご説明いたします。
(原稿テキストをここに貼り付け)
録音画面
原稿入力画面で「録音を開始する」ボタンを押すと遷移する、メインの録音作業画面である。画面は大きく上下2つのエリアで構成される。
上部:原稿一覧エリア
全文が一覧表示されるエリアである。各文には現在の状態(未録音・現在の文・録音済み)が視覚的に表示される。録音済の文をクリックすると、その文に戻って録り直しができる(後述「戻り操作」)。未録音の文をクリックすると、その文のテキストをインライン編集できる。
下部:録音操作エリア
現在の文のテキストが大きなフォントで表示され、読みやすい形で提示される。その下に操作ボタン群と進捗カウンター(例:「3 / 15 文目」)が表示される。操作ボタンは録音の状態に応じて切り替わる。
文の状態表示
| 状態 | 表示 | 説明 |
|---|---|---|
| 未録音 | グレーテキスト | まだ録音されていない文。クリックでインライン編集可能 |
| 現在の文 | ハイライト背景 | 現在録音対象として選択されている文 |
| 録音済(OK) | 緑背景 + ✅ チェックマーク | OKが確定し、WAVがダウンロード済み。クリックで戻り操作可能 |
操作フロー
基本フロー
1文ごとの録音は、以下のフローで進行する。
各状態におけるボタン表示
録音操作エリアに表示されるボタンは、現在の録音状態に応じて切り替わる。
| 状態 | 表示されるボタン | 説明 |
|---|---|---|
| 録音待機 | 「録音開始」 | 録音を開始する。クリックでマイクが有効になり録音が始まる |
| 録音中 | 「録音停止」+ 録音中インジケーター | 録音を停止する。赤い点滅インジケーターが表示され、録音中であることを示す |
| 録音確認 | 「再生」「OK(次へ)」「NG(やり直し)」 | 録音内容を再生して確認し、OKまたはNGを判定する |
戻り操作と原稿編集
録音済みの文への戻り
上部の原稿一覧エリアで、録音済(OK済み)の文をクリックすると、その文に戻って再度録音を行うことができる。戻った文は「録音待機」状態にリセットされ、通常の録音フローで再度録音を行う。再度OKすると、新しい録音データが同じ連番のファイル名でダウンロードされる(上書き)。
| 操作 | 動作 |
|---|---|
| 録音済の文をクリック | その文に戻り、「録音待機」状態になる |
| 再録音 → OK | 新しい録音でWAVファイルが再ダウンロードされる(同じ連番ファイル名) |
003_まず最初に (1).wav)されることがある。不要なファイルは手動で削除すること。
未録音の文の編集
上部の原稿一覧エリアで、未録音の文をクリックすると、テキストをインライン編集できる。これにより、録音前に原稿の誤字を修正したり、読みやすいように文を調整したりすることが可能である。
| 文の状態 | 編集可否 |
|---|---|
| 未録音 | ✅ 編集可能(クリックでインライン編集) |
| 現在録音中の文 | ❌ 編集不可 |
| 録音済(OK) | ❌ 編集不可 |
ファイル出力
出力仕様
| 項目 | 仕様 |
|---|---|
| フォーマット | WAV(PCM) |
| ビット深度 | 16bit |
| チャンネル | モノラル |
| ダウンロードタイミング | 「OK(次へ)」ボタン押下時に自動ダウンロード |
| エンコード方式 | JavaScriptによる手動エンコード(外部ライブラリ不要) |
ファイル名の命名規則
出力されるWAVファイルの名前は、連番3桁と原稿テキストの冒頭20文字を組み合わせて自動生成される。
| 項目 | 仕様 |
|---|---|
| 形式 | {連番3桁}_{冒頭20文字}.wav |
| 連番 | 001 から始まるゼロ埋め3桁 |
| テキスト部分 | 原稿テキストの先頭から最大20文字 |
| 禁止文字の処理 | ファイル名に使用できない文字(/ \ : * ? " < > |)は除去される |
ファイル名の例:
002_ただいまより説明を開始いたします.wav
003_まず最初に概要からご説明いたしま.wav
全文録音完了
すべての文がOK済みになった時点で、画面に完了メッセージが表示される(例:「全ての録音が完了しました!」)。個別のWAVファイルは「OK(次へ)」ボタンを押した時点で都度ダウンロード済みであるため、一括ダウンロード機能は設けられていない。
デザイン
BOOTHのUIは、録音作業に集中できるよう、シンプル・ミニマルなデザインを採用している。
| 要素 | 仕様 |
|---|---|
| 背景色 | 白背景 |
| UI要素 | 必要最低限の要素のみ配置 |
| フォントサイズ | 読みやすさ重視で大きめに設定(特に現在の文の表示) |
| 録音中インジケーター | 赤い点滅インジケーターで録音状態を明示 |
| 未録音の文 | グレーテキストで通常表示 |
| 現在の文 | 背景色で強調表示(ハイライト) |
| 録音済の文 | 緑系の背景色 + チェックマーク |
トラブルシューティング
マイクの使用許可が求められない・録音できない
- ブラウザのアドレスバー横にあるマイクアイコンをクリックし、マイクの使用が許可されているか確認する
- ブラウザの設定からサイトごとのマイク許可を確認する
- OS(Windows / macOS)側のマイク許可設定を確認する
- マイクが正しく接続されているか確認する
- 他のアプリケーションがマイクを占有していないか確認する
「録音開始」を押しても反応がない
- ブラウザがChromeであることを確認する(推奨ブラウザ)
- ブラウザを最新版に更新する
- HTTPSまたはlocalhostでアクセスしているか確認する(マイクAPIはセキュアコンテキストが必要)
- ページをリロードして再試行する
録音した音声が無音になる
- 正しいマイクデバイスが選択されているか確認する
- マイクの音量がミュートになっていないか確認する
- OS側の入力デバイス設定で正しいマイクが選択されているか確認する
ダウンロードされたファイルが再生できない
- WAV対応の音声プレーヤーで再生を試みる
- ファイルサイズが極端に小さい(0KB等)場合は、録音が正常に行われていない可能性がある。再度録音を試みる
自動ダウンロードが動作しない
- ブラウザのポップアップブロックが有効になっていないか確認する
- ブラウザの設定で自動ダウンロードが許可されているか確認する
- Chromeの場合:設定 → プライバシーとセキュリティ → サイトの設定 → 自動ダウンロード を確認する
ページをリロードしたら進捗が消えた
- BOOTHは進捗データをブラウザのメモリ上にのみ保持するため、ページのリロードや閉じた場合はすべてのデータが失われる。これは仕様である
- 既にダウンロード済みのWAVファイルはダウンロードフォルダに残っている
注意事項
- 初回録音時にブラウザからマイクの使用許可を求められる。「許可」をクリックしないと録音機能が利用できない
- ページをリロードまたは閉じると、全ての進捗と録音データが失われる。作業中はページを閉じないよう注意すること
- 対応ブラウザはChromeを推奨する。他のブラウザではWeb Audio API / MediaRecorder APIの挙動が異なる場合がある
- マイクAPIはセキュアコンテキスト(HTTPS または localhost)でのみ動作する。HTTP環境ではマイクにアクセスできない
- WAVエンコードはブラウザ側のJavaScriptで行うため、長時間の録音ではメモリ使用量が増加する可能性がある
- ダウンロードされたWAVファイルはブラウザのダウンロードフォルダに保存される。保存先はブラウザの設定に依存する
- 録り直し時に同名ファイルが再ダウンロードされる。ブラウザの設定により自動リネームされる場合があるため、不要なファイルは手動で整理すること
- 録音データはブラウザ上でのみ処理され、外部サーバーに送信されることはない