#author("2025-12-17T14:49:20+09:00","default:pengwei-admin","pengwei-admin") #author("2025-12-17T14:50:17+09:00","default:pengwei-admin","pengwei-admin") * openvoice [#w84ca897] #contents ** 仕組み概要 [#e10a6c2d] - OpenVoiceの仕組みを整理するとこうなります: *** 1. 声質はどんなファイルで保存される?** [#uaac3ae1] 話者(target)から抽出された声質は、通常 **特徴量(voice embedding)** として保存されます。 [#w6223988] この特徴量は **ベクトル形式**で、モデルが話者の声の特徴(フォルマント、ピッチ、音色など)を数値化したものです。 [#vac6ccdb] 保存形式はプロジェクトによりますが、一般的には以下のような形式: [#qe4f5095] `.npy`(NumPy配列)** `.pt`(PyTorchテンソル)** JSONやPickle**でメタ情報と一緒に保存する場合もあります。 つまり、音声そのものではなく「声の特徴を抽出したデータ」がファイルとして保持されます。 [#h8db58db] *** 2. speakerに転写する際にAIを使っているか?** [#s96df383] はい、使っています。具体的には: ニューラルネットワーク(通常はTransformer系やVAE系)\*\*を利用して、抽出した声質(embedding)をTTSモデルに組み込みます。 [#pafc1f0a] このとき、テキストを音声に変換するTTSモデルに「話者のembedding」を条件付け(conditioning)として入力します。 [#x678abe7] さらに、スタイル転写(話し方や感情)を行う場合は、別の音声からスタイル特徴量を抽出し、同様にAIモデルで合成します。 [#ze6b377f] 要するに: 声質ファイル = 数値化された話者特徴(embedding)** [#a69dfd8c] 転写 = AIモデルがテキスト+話者embeddingを使って音声を生成** [#da1ab7a1] もし興味があれば、 ✅ **実際のOpenVoiceの声質ファイルの構造(例)** ✅ **音声クローンの処理フロー図** ✅ **Pythonコードでembeddingを保存・読み込む方法** *** speakerが話す音声データをバックエンドからフロントに送る際の形式は選択肢がある [#ra6e26dc] *** 3.バックエンドからフロントに送る音声データ形式は選択肢がある [#ra6e26dc] 1. 一般的な形式 WAV(PCM) 高音質・非圧縮(リニアPCM) サイズが大きい(1秒あたり約176KB @16bit/44.1kHz) よくTTSや音声合成の内部処理で使われる MP3(圧縮) 軽量でネットワーク転送に向いている 音質は圧縮率に依存(128kbps~320kbps) 再生互換性が高い OGG(Opus) Web向けで効率的、低遅延 WebRTCやストリーミングでよく使われる -実際の構成 バックエンドで生成 → WAV形式で一旦保存 → MP3やOpusに変換 → フロントに送信 フロント側では <audio> タグやWeb Audio APIで再生。 - 推奨 リアルタイム性重視 → Opus(WebRTC) 高音質重視 → WAV(ただしサイズ大) 一般的なWeb配信 → MP3 ** その他のTTS [#o720015d] *** 軽量LLVC [#pd47a745] https://github.com/KoeAI/LLVC *** RVC [#d159646b] https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/jp/README.ja.md