pydomino-prebuilt は、pydomino の事前ビルド済み wheels を PyPI に公開することを目的とした、pydomino の派生ライブラリです。
- パッケージ名を
pydomino-prebuiltに変更 - Windows・macOS (x64 / arm64)・Linux すべての事前ビルド済み wheels を PyPI に公開
- pydomino は C++ や CMake 、サブモジュールに依存しており、ビルド環境の構築難易度が比較的高い上に、PyPI には公開されていない
- 特に Windows においては MSVC のインストールが必要となる
- 事前ビルド済みの wheels を PyPI に公開することで、ビルド環境のない PC でも簡単にインストール可能にすることを意図している
- pydomino は C++ や CMake 、サブモジュールに依存しており、ビルド環境の構築難易度が比較的高い上に、PyPI には公開されていない
- 明示的に Python 3.11 / 3.12 / 3.13 をサポート対象に追加
- ONNX モデルを Wheel に同梱
- 学習済みモデル
phoneme_transition_model.onnxは Wheel パッケージに同梱されており、pydomino-prebuilt と同時にインストールされる - これにより、利用者が毎回モデルファイルをダウンロードしたり、ファイルパスを指定する必要がなくなった
- 学習済みモデル
- Python API の使いやすさを向上
pydomino.Aligner()のコンストラクタでonnxfileパラメータを省略可能に変更したonnxfileパラメータが指定されていない場合、自動的に内蔵の学習済みモデルが利用される- 従来通り、カスタムモデルのパス指定も可能
- CLI の使いやすさを向上
dominoコマンドで--onnx_pathオプションを省略可能に変更した--onnx_pathオプションが指定されていない場合、自動的に内蔵の学習済みモデルが利用される- 従来通り、カスタムモデルのパス指定も可能
- パッケージメタデータの整理
pyproject.tomlにプロジェクトメタデータを統合し、現代的な Python パッケージ標準に準拠した- 適切な classifiers を追加して、対応 OS・Python バージョン・ライセンス情報などを明示した
下記コマンドを実行して、ライブラリをインストールできます。
pip install pydomino-prebuilt下記ならびに docs/ 以下のドキュメントは、pydomino 本家のドキュメントを改変なしでそのまま引き継いでいます。
これらのドキュメントの内容が pydomino-prebuilt にも通用するかは保証されません。
pydomino は日本語音声に対して音素ラベルをアラインメントするためのツールです。GPUは不要です。
ライブラリとして Python から使うこともコマンドラインツールとしてコンソールから使うこともできます。
ドキュメントは こちら からご覧いただけます。
技術の解説記事は こちら からご覧いただけます
- CMake
- Python >= 3.10 (miniconda etc.)
- Visual Studio >= 2019 (for Windows)
git clone --recursive https://github.com/DwangoMediaVillage/pydomino
cd pydomino
pip install ./また、下記のように直接 pip インストールもできます(コマンドラインツールもインストールされます。コマンドラインツールを使うときは、onnxファイルを指定する必要があります。onnx_model/phoneme_transition_model.onnx をダウンロードしてください):
pip install git+https://github.com/DwangoMediaVillage/pydominoAnaconda Prompt (miniconda3) 環境において MSVC の vcvars64.bat を利用してインストールします:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"or"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat".
# on `Anaconda Prompt (miniconda3)`
"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
git clone --recursive https://github.com/DwangoMediaVillage/pydomino
cd pydomino
pip install ./また、下記のように直接 pip インストールもできます(コマンドラインツールもインストールされます。コマンドラインツールを使うときは、onnxファイルを指定する必要があります。onnx_model/phoneme_transition_model.onnx をダウンロードしてください):
pip install git+https://github.com/DwangoMediaVillage/pydominoalignmer: pydomino.Aligner = pydomino.Aligner(path-to-model-file.onnx)
y: np.ndarray = librosa.load(path-to-wav-file, sr=16_000, mono=True, dtype=np.float32)[0]
p: list[str] = path-to-phoneme-file.read_text().split(" ")
z: list[tuple[float, float, str]] = alignmer.align(y, " ".join(p), 3) # [(start_time_sec, end_time_sec, phoneme_str)]path-to-model-file.onnxは事前学習済みの onnx モデルファイルです。onnx_model/phoneme_transition_model.onnxにあります。
path-to-wav-fileはサンプリング周波数 16kHz のモノラル wav ファイルです。path-to-phoneme-fileは音素を空白区切りしたテキストが格納されたファイルのパスです。- NOTE: 開始音素と終了音素は
pauである必要があります。
- NOTE: 開始音素と終了音素は
phonemes に使える音素一覧は下記の通りです:
pau |
ry |
r |
my |
m |
ny |
n |
j |
z |
by |
b |
dy |
d |
gy |
g |
ky |
k |
ch |
ts |
sh |
s |
hy |
h |
v |
f |
py |
p |
t |
y |
w |
N |
a |
i |
u |
e |
o |
I |
U |
cl |
上記のインストール手順における pip install により Cli ツールも自動でビルドされます。
ビルドされたツールは下記のようにして使えます:
domino \
--input_path={path-to-wav-file} \
--input_phoneme={path-to-phoneme-file} \
--output_path={path-to-output-lab-file} \
--onnx_path={path-to-output-onnx-file} \
--min_frame=3また ver 1.2.1 にて、TextGridファイルへの出力に対応いたしました。--output_format=TextGrid を付け加えると、出力が lab ファイルではなく TextGrid ファイルとなります。
domino \
--input_path={path-to-wav-file} \
--input_phoneme={path-to-phoneme-file} \
--output_path={path-to-output-lab-file} \
--onnx_path={path-to-output-onnx-file} \
--output_format=TextGrid \
--min_frame=3onnxファイルは当組織で学習済みの onnx_model/phoneme_transition_model.onnx を用意していますのでお使いください
音素アラインメントの結果を表すフォーマットとしてよく使われるファイル形式です。
各行に音素の開始時刻と終了時刻 (いずれも単位は秒) と、そのときの音素が TAB 区切りで並んでいます:
0.000 0.000 pau
0.000 0.080 d
0.080 0.150 o
0.150 0.190 w
0.190 0.350 a
0.350 0.460 N
0.460 0.490 g
0.490 0.640 o
0.640 0.724 pau