jamesondh/chimera-vocal-synth

the ultimate vocal synthesizer - sing, speak, beatbox, and more

これは何か

CHIMERA は、Webブラウザ内で完全に動作する音声合成器です。録音されたオーディオサンプルを再生する代わりに、人間の声の物理(肺、声帯、声道、舌、唇、鼻)をリアルタイムにシミュレートします。重い処理は、WebAssemblyにコンパイルされたRustエンジンによって行われ、ブラウザのオーディオシステム内で実行されます。同じRustコードは、テスト用にネイティブでも実行でき、chimera というコマンドラインツールとしても使用できます。

できること

  • 演奏 — 頭部のライブ断面図で舌、唇、顎をドラッグします。母音パッド、ノブ、コンピューターのキーボード、またはWeb MIDIデバイスで声を制御します。
  • 話す — 英語のテキスト(CMU発音辞書を使用し、文字から音へのフォールバック付き)またはIPAを入力すると、エンジンがそれを口の動きと音声リズムに変換します。画面上でジェスチャースコアと子音チャートを確認できます。
  • 歌う — 各音符に歌詞があるピアノロールを使用します。子音はビートの直前にタイミングが合わせられます。
  • ビートボックス — パッドとステップシーケンサー。すべてのドラムサウンドは、実際には調音ジェスチャー(口の動きなど)であり、サンプルではありません。
  • 動物の声 — 人間以外の声:鳴禽(二重の鳴管、鳥の声帯に相当)、アザラシ、ワニ、ゾウ。
  • デュエット — URLパラメータ(?show=<id>)で、2つの3Dヘッドを使ったプリレンダリングされた曲を再生します。

男性、女性、子供の声道は連続的にブレンドされます。画面上で見えるすべて(声道内の気圧、気流、声帯、スペクトル、フォルマント)は、実際のエンジン状態からライブでアニメーションします。

実行方法

Rust(wasm32-unknown-unknown ターゲット付き)とBunがインストールされている必要があります。次に:

bun install
bun run dev        # WebAssemblyをビルドし、127.0.0.1:5317でViteを起動
bun run test       # wasmをビルドし、cargoテストを実行し、次にBunテストを実行

オーディオシステムはセキュアコンテキストを必要とするため、localhostまたはHTTPSで開いてください(READMEでは tailscale serve を一つの選択肢として提案しています)。Vercelは vercel.json を介してビルドします。

オフラインレンダリングと測定

CLIはブラウザなしでオーディオをレンダリングできます:

cargo run --release -p chimera-cli -- render speech|text|song|notes|beatbox|creature|vowels …
cargo run --release -p chimera-cli -- diagnose       # 鼻漏れ、フォルマント、帯域幅、ピッチをチェック
cargo run --release -p chimera-cli -- compare csd    # 実際の歌手と声をスコアリング(Children's Song Dataset)
cargo run --release -p chimera-cli -- compare tsp    # 23人の実際の話者と音声をスコアリング(TSP音声データベース)
bun tools/spectrogram.ts in.wav out.png              # オーディオファイルからスペクトログラム画像を作成

ドキュメント

リポジトリには、音響モデル(有限差分時間領域声道シミュレーション、音源、解剖学、ジェスチャー)、エンジンのリアルタイム性と決定性の契約、UIデザイン、実際の歌手や話者との比較、および音声を測定されたステップごとに調整するために使用されたヒルクライミングログに関するドキュメントが含まれています。

ライセンス

MIT。バンドルされているサードパーティファイルは、それぞれのライセンスを保持します:CMU発音辞書とフォント。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト