Curse Voice
リアルタイムのボイスチェンジャー
Curse Voice は、マイクの声にピッチ/フォルマント変換やLFOのピッチ変調をリアルタイムでかけて、任意のオーディオ出力へ送るボイスチェンジャーです。ブラウザでも、Windows のアプリ版でも使えます。
概要
−3〜+3オクターブの大きなシフトと、±12半音の微調整、LFOによるピッチ変調(Sine・Triangle・Square)で、呪霊のような声をつくれます。Simple Voice モードでは、ピッチとフォルマントを独立して変えられ、Natural・Soft・Feminine・Bright・Deep のプリセットがあります。
RNNoise によるAIノイズキャンセル、声向けのEQ、VRChat や Discord 向けの音質補正、処理後の声を自分のヘッドホンで聞ける Self Loopback、処理後の音声のWAV録音に対応します。処理は端末の中で完結し、音声をサーバーへ送信しません。
Web 版は、アプリを入れずにブラウザ(Chrome・Edge)で試せます。DiscordやVRChat にマイクとして渡す仮想オーディオドライバは、ブラウザからはつくれないため、その導入には Windows のアプリ版(インストーラーに VB-CABLE を同梱。BOOTH で配布)が向いています。macOS のアプリ版は準備中です。
アーキテクチャ
- 構成
- React・TypeScript・Vite で作った画面を、ブラウザ(Web 版)と Electron(アプリ版)の両方で使います。Electron は、画面と OS の処理を分離する安全な設定で動かします。
- 音声処理
- マイク入力を、ゲイン・ローカット・EQ・(任意の)RNNoise に通し、Signalsmith Stretch(WASM・AudioWorklet)でピッチとフォルマントを変換します。LFO のピッチ変調は、Tone.js の Worker で定期的に更新します。処理後の音を Dry/Wet で混ぜ、追加の遅延と任意の音質補正を通して、選んだ出力デバイスへ直接送ります。
- 遅延
- 画面に出す推定レイテンシーは、Web Audio が公開する遅延、ピッチ処理の窓、追加バッファの合計です。マイクのドライバや仮想ケーブル、受け側のアプリのバッファは含みません。
- プライバシー
- 処理は端末の中で完結し、音声をサーバーへ送信しません。
- 配布
- Web 版は静的な成果物として HTTPS で配信します。Windows 版は BOOTH で配布しています。
- 検証
- Vitest の単体テストに加えて、ヘッドレスの Chromium に疑似マイクを入力する E2E 検査(エンジンの開始・停止、メーター、プリセット、+1オクターブ、WAV 録音など)を実行します。物理マイクや仮想ドライバの実機確認は、この検査では置き換えません。
- 種別
- リアルタイムのボイスチェンジャー
- 区分
- プロダクト(SaaS・Webサービス)
- 状態
- 公開中
- 担当
- 企画・設計・開発
- 技術
- React
- TypeScript
- Vite
- Electron
- Web Audio API
- Tone.js
- Signalsmith Stretch
- RNNoise
- Vitest