SOFA Oto.ini は、UTAU音源からグラフェム抽出およびg2p変換(PyOpenJTalk利用)を行い、SOFAモジュールによるラベル推定を経て、oto.iniファイルの生成を自動化するツールです。
SOFA Oto.iniは、UTAU音源ファイル名からグラフェム(仮名)を抽出し、PyOpenJTalk によるg2p変換を実施します。その後、SOFA モジュールがラベル推定を行い、最終的にoto.iniファイル(例: oto-SOFAEstimation.ini
)を生成します。なお、PyOpenJTalkはg2p変換のみに特化しており、ラベル推定はSOFAが担当します。
-
グラフェム抽出:
音声ファイル名から対象のグラフェムを抽出し、対応するテキストファイルを生成します。 -
g2p変換 (PyOpenJTalk):
抽出されたテキストから、PyOpenJTalkを利用して音素列を生成します。
※ PyOpenJTalkはg2p変換のみを実施します。 -
ラベル推定 (SOFA):
PyOpenJTalkで得られた音素列およびその他の情報を基に、SOFAがラベル推定を行います。 -
oto.ini生成:
推定されたラベル情報を活用して、oto.iniファイルを自動生成します。
Directory structure:
└── SOFA-oto.ini/
├── README.md
├── README_EN.md
├── LICENSE
├── pyproject.toml
├── requirements.txt
├── uv.lock
├── .python-version
└── src/
├── g2p.py
├── main.py
├── SOFA/
└── ckpt/
└── .gitkeep
- OS: Windows
- Python: 3.11(3.12未満。3.11での動作を推奨)
- 依存パッケージ:
必要なパッケージは pyproject.toml に記載されています。
-
リポジトリのクローン
サブモジュールを含めてクローンすることを推奨します。以下のコマンド例をご利用ください:git clone --recursive https://github.com/Lqm1/SOFA-oto.ini cd SOFA-oto.ini
-
仮想環境の構築とアクティベート
python -m venv .venv .venv/scripts/activate
-
依存パッケージのインストール
pip install -r requirements.txt
-
チェックポイントの配置
src/ckpt
フォルダ内に、必要な学習済みチェックポイント(例:step.100000.ckpt
)を配置してください。
-
仮想環境のアクティベート
.venv/scripts/activate
-
実行
src/main.py
を実行し、対象のUTAU音源が格納されているディレクトリのパスを引数として指定します。例:python src/main.py [音源ディレクトリのパス]
実行時、以下のフェーズに分かれた処理が実行されます:
-
Phase 1:
音声ファイル名からグラフェムを抽出し、テキストファイルを生成します。 -
Phase 2:
生成されたテキストファイルを基に、PyOpenJTalkでg2p変換を実施し、SOFAモジュールがラベル推定を行います。 -
Phase 3:
推定されたラベル情報を元に、oto.iniファイル(例:oto-SOFAEstimation.ini
)を生成します。
※ 各フェーズでは、ユーザ入力(VCV oto.ini生成の有無、サフィックスの指定、重複エイリアスの番号付与など)が求められる場合があります。
-
-
入力ファイル:
指定ディレクトリには、対象の.wav
ファイルが配置されている必要があります。ファイル名はグラフェム抽出のための重要な情報を含むため、適切な命名規則に従っているか確認してください。 -
依存パッケージ:
本プロジェクトは多数の外部パッケージに依存しています。インストール時に問題が発生した場合は、Pythonのバージョンや各パッケージのバージョン設定をご確認ください。 -
チェックポイント:
oto.iniの生成には学習済みチェックポイントが必要です。正しいファイルをsrc/ckpt
内に配置してください。
バグ報告、機能追加の提案、プルリクエストなど、どなたからの貢献も歓迎します。まずは Issue をご利用ください。
本プロジェクトは GPL-3.0 License のもとで公開されています。
ご質問やご提案は、[email protected] までお気軽にご連絡ください。