voicevox-playground-tui
セリフを書けばすぐ再生 - 思考の速度でずんだもん -
必要なもの
インストール
cargo install --force --git https://github.com/cat2151/voicevox-playground-tui
サーバー
使うには、VOICEVOXエンジンを起動してください。
- VOICEVOXをダウンロードしてインストール
- VOICEVOXエンジンを起動(ポート50021でHTTPサーバーが起動します)
<your VOICEVOX directory>/vv-engine/run
実行
CLIオプション
| オプション |
動作 |
--clipboard |
クリップボードの内容を行ごとに読み上げて終了(history.txtには追加しない) |
キーバインド
| キー |
動作 |
i |
INSERT モード(現在行を編集) |
Enter / Esc |
INSERTモードからNORMAL モードへ戻る |
j / ↓ |
下の行へ移動 → 自動再生 |
k / ↑ |
上の行へ移動 → 自動再生 |
o |
1行下に空行挿入して INSERT モード |
O |
1行上に空行挿入して INSERT モード |
dd |
行カット |
p |
行ペースト(現在行の下) |
P |
行ペースト(現在行の上) |
"+p |
クリップボードの内容を現在行の下に貼り付け |
"+P |
クリップボードの内容を現在行の上に貼り付け |
Enter / Space |
現在行を手動再生 |
v |
イントネーション編集モードへ |
zm |
折りたたみ(行頭スペースのある行を非表示) |
zr |
折りたたみを開く |
gt |
次のタブへ移動 |
gT |
前のタブへ移動 |
:tabnew |
新しいタブを作成 |
q |
終了(履歴を保存) |
- NORMALモード時のキーバインドはvim風
- INSERTモード時のキーバインドはEmacs風
仕様
- カーソル移動時、キャッシュがあれば即再生、なければ非同期で VOICEVOX にfetchして完了後に自動再生
- 履歴は
C:/Users/<your-name>/AppData/Local/voicevox-playground-tui/history.txt に保存・ロード
- キャッシュはオンメモリ(プロセス終了で消える)
アップデート
- アップデートしたいときも、インストールと同じコマンドを実行すればOK
cargo install --force --git https://github.com/cat2151/voicevox-playground-tui
将来予定
- コマンドライン引数でテキストファイルを末尾に読み込む
- コマンドライン引数でhistory.txtの行ごとにwavファイルを生成
- history.txtを1秒ごとにtimestampチェックして更新があればホットリロード
notes
- なぜネイティブアプリ?
- 一つのことをうまくやれ。小規模で、一つの小さいことをうまくやるアプリがほしかった。
- ただし標準入出力を実装してツールチェインの一部にするつもりはない(スコープ外)。
- 今どきは、それよりも、このアプリのように、やりたいことを直接LLMに実装させてUX検証のサイクルをまわすほうがスムーズなことがある
- クリップボード。きっかけはPythonでクリップボード再生をClaude chatですぐ実装できて、それを再生しながらブレインストーミングをObsidianに書いていて、それをなんとなくClaude chatに投げたらすぐこれができた
- 手軽にOSと接続。localに手軽にwavファイル保存(将来)。手軽にクリップボードから再生(将来)
- readme案
- 複数のセリフを素早く編集して再生できる、軽量のエディタ
- より詳しく
- 思考の速度でずんだもん
- 簡易vimライクな操作で、思考の速度で編集と再生
- 行指向のシンプルな仕様
- 名称の案
- voicevox-playground-tui
- メリット、これなら任意に内容を変更できる
- デメリット、voicevox-playground もそうだが、何をするものか、の説明になってない
- voicevox-playground とどう違うのか?がわからない
- 下手すると、誤解される
- こっちも1つのセリフしか編集できなくて、お気に入りがあるんでしょ、
- voicevox-text-editor
目指すこと
- Claude。Claude chatで手軽にlocalネイティブRustずんだもんclientが実現できることを実証する(実証した)
- 音が鳴る。起動してinsert modeで入力してESCすれば音が鳴る、という体験を提供できる、ことを維持する。もしバグってそれができないなら、優先的にそのバグの修正を目指すことを検討する。
- セリフ。TUIで素早く複数のセリフを書いて鳴らして遊べる体験、を提供する
- 行指向。1行でセリフのデータが完結する。他の行に影響しないことで、シンプルな仕様を維持する。
目指さないこと(スコープ外)
- 標準入出力。標準入出力を実装してツールチェインの一部として利用可能に
- 自動。wavファイルをいい感じにまとめて書き出す。ファイル名は連番でspeakerとstyleと文章冒頭(ファイル名正規化済み)。特に操作をしなくても、インテリジェントに自動的に、適切なフォルダに、適切なaudio formatを選び、書き出す。貴重なファイルが失われるようなデータ損失を完全に防止する。ムダな大量wavファイルの蓄積を完全に防止する
- 統合。本格的な統合環境。これ一つでVOICEVOXによるセリフwav生成作業と動画編集との統合から動画配信までオールインワンで完結できる決定版
- 歌う(VOICEVOXエディタのように)
- DAW
- 高機能。VOICEVOXエディタと同等以上の高度な編集機能
- vim。vimと同等以上の高度なテキスト編集機能
- プラグイン。vimプラグイン化
- GUI。TauriによるGUI化。ブラウザ版 voicevox-playground と同等以上の高度な可視化