MeloTTSをWSL2 Ubuntu 24.04にインストールする手順と、ハマったエラー解決まとめ【MeCab / pyenv / SSL】

この記事では、MeloTTS を WSL2 Ubuntu 24.04 にインストールする方法と、
実際に私が遭遇した MeCabエラー / pyenvのビルドエラー / SSLエラー の解決方法をまとめています。

同じ環境でつまずいている方の参考になれば嬉しいです。


1. 動作環境について

今回の環境は以下のとおりです。

Python 3.11 以降では、tokenizers が wheel 化されておらず Rust のビルド環境が必要になったため、
仮想環境を作る前に Python を 3.10 以下にしておくのが安全です。


2. MeCab をインストールする

まず OS 側に MeCab をインストールします。

sudo apt update
sudo apt install mecab libmecab-dev mecab-ipadic-utf8

この時点で MeCab が正しく入っていないと、後の mecab-python3 インストールでエラーが出ます。


3. MeloTTS を GitHub からクローンする

次に MeloTTS を取得します。

git clone https://github.com/myshell-ai/MeloTTS.git

クローンしたディレクトリに移動して作業を進めます。


4. Python仮想環境(venv)の作成

Python 3.10 以下が推奨のため、私は先に pyenv で Python 3.10 を入れました。
ただし、ここで Python 3.10 がインストールできない というエラーに遭遇しました。


5. pyenv で Python 3.10 がインストールできない問題(解決)

pyenv install 3.10.x を行うとエラーが出る場合、
必要な依存パッケージが不足している可能性があります。

以下をインストールすることで解決しました。

sudo apt update
sudo apt install -y \
build-essential \
libssl-dev \
zlib1g-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
libncursesw5-dev \
xz-utils \
tk-dev \
libxml2-dev \
libxmlsec1-dev \
libffi-dev \
liblzma-dev \
uuid-dev

この後、pyenv install 3.10.x が正常に動作しました。


6. 仮想環境を作成・有効化する

準備ができたら仮想環境を作成します。

python3 -m venv MeloTTS
source MeloTTS/bin/activate

7. MeloTTS をインストールする

仮想環境に入った状態で MeloTTS をインストールします。

pip install -e .

ここで私は MeCab 関連のエラー に遭遇しました。
その場合は下記で python 側の MeCab を追加インストールします。

pip install mecab-python3

8. unidic ダウンロード時の SSL エラー(CERTIFICATE_VERIFY_FAILED)

次に unidic の辞書をダウンロードします。

python -m unidic download

しかし、ここで以下のような SSL エラーが発生しました。

SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain

原因は、会社のプロキシ環境で CA 証明書が正しく設定されていないことでした。


▼ 解決方法

  1. CA 証明書を OS に登録
  2. update-ca-certificates を実行
  3. REQUESTS_CA_BUNDLE を設定
sudo cp CA証明書.cer /usr/local/share/ca-certificates/CA証明書.crt
sudo update-ca-certificates
export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt

これで unidic download が無事完了しました。


9. MeloTTS を実行する

準備が整ったら以下で音声を生成できます。

melo "おはようございます。今日はいいお天気ですね。" output.wav \
-l JP \
-d cpu

初回はモデルのダウンロードが走るため、ネット接続が必要です。
生成結果の音声は output.wav に保存されます。


10. モデルの保存場所とモバイル向け変換について(メモ)

初回ダウンロード時にモデルが保存されますが、
MeloTTS のモデルとトークナイザは別ファイルになっています。

今後、モバイル(Android など)で動かす場合は、

  • tflite 化できるか?
  • モデルとトークナイザをアプリ側でどう結合するか?

などの調査が必要だと感じています。

このあたりは今後時間があるときに見てみようと思っています。


まとめ

今回のポイントをまとめると以下の通りです。

  • MeloTTS は Python 3.10 以下が安定
  • MeCab がないとエラーが出る
  • pyenv の Python 3.10 ビルドには依存パッケージが大量に必要
  • unidic ダウンロード時に SSL エラーが出る場合は CA 証明書を登録
  • WSL2 でも問題なく動作可能

私自身かなりエラーにハマったので、同じ環境で困っている方の助けになれば幸いです。

参考

シンプルかつMITライセンスで使いやすいTTS「MeloTTS」を試す
kun432さんのスクラップ

コメント

タイトルとURLをコピーしました