#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

トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS