2024/09/23(月) [n年前の日記]
#1 [linux][ubuntu] Linux機の/homeを別パーティションに引っ越し
数日前に、Ubuntu Linux 22.04 LTSをインストールしてあるサブPC(Intel i3-6100T機)の /home を別パーティションに引っ越ししたのだけど、作業手順をメモするのを忘れていたような気がするのでメモ。
元々、HDDの1パーティション(500GB程度)を /home に割り当てていたけれど、更に容量の大きいHDDのパーティション(3TB)に割り当てることにした。そのためには /home の中身を別パーティションに丸々コピーしないといけない。
ハードウェア構成は以下。
以下を参考にして作業。
_Ubuntuで使用中のhomeディレクトリを別パーティションに移動する (LiveUSBなど不要) - kamocyc’s blog
元々、HDDの1パーティション(500GB程度)を /home に割り当てていたけれど、更に容量の大きいHDDのパーティション(3TB)に割り当てることにした。そのためには /home の中身を別パーティションに丸々コピーしないといけない。
ハードウェア構成は以下。
- /dev/sda1 : Label HOMEOLD : 今までの /home (HDD Western Digital Caviar Black WD1002FAEX-00Z3A0, 1TB)
- /dev/sdb1 : Label HOME3TB : 新しい /home にしたいパーティション。 (HDD TOSHIBA DT01ACA300, 3TB)
- /dev/sdc1 : Label ROOT : / を割り当ててあるパーティション。(SSD PLEXTOR PX-256M2P, 256GB)
以下を参考にして作業。
_Ubuntuで使用中のhomeディレクトリを別パーティションに移動する (LiveUSBなど不要) - kamocyc’s blog
◎ 作業手順のメモ :
新 /home 用パーティションをマウントするためのディレクトリを作成。
マウント設定ファイル /etc/fstab を修正。今回は micro editor を使ったけれど、nano でも vim でも何でもいい。
以下を追記。自分の環境はパーティションにラベルをつけてあるので、ラベルで指定。つけてない場合は、UUIDを調べて記述することになる。
/etc/fstab の内容に基づいてマウントする。
/home の中身を、/media/home にコピーする。rsync を使う。参考記事では `-aXS` を指定してたけど、今どのファイルをコピーしているのか分かるようにしておきたかったので、`-v` も追加しておいた。
今まで使ってた /home用パーティションを割り当てるためのディレクトリを作成。
/etc/fstab の内容を以下に変更。今まで使ってた HOMEOLD パーティションは /media/homeold に割り当てて、新しいパーティション HOME3TB を /home にする。
OS再起動。
今回はすんなり引っ越しすることができた。
sudo mkdir /media/home
マウント設定ファイル /etc/fstab を修正。今回は micro editor を使ったけれど、nano でも vim でも何でもいい。
sudo micro /etc/fstab
以下を追記。自分の環境はパーティションにラベルをつけてあるので、ラベルで指定。つけてない場合は、UUIDを調べて記述することになる。
LABEL=HOME3TB /media/homeold ext4 errors=remount-ro 0 2
/etc/fstab の内容に基づいてマウントする。
sudo mount -a
/home の中身を、/media/home にコピーする。rsync を使う。参考記事では `-aXS` を指定してたけど、今どのファイルをコピーしているのか分かるようにしておきたかったので、`-v` も追加しておいた。
sudo rsync -vaXS /home/. /media/home/.
今まで使ってた /home用パーティションを割り当てるためのディレクトリを作成。
sudo mkdir /media/homeold
/etc/fstab の内容を以下に変更。今まで使ってた HOMEOLD パーティションは /media/homeold に割り当てて、新しいパーティション HOME3TB を /home にする。
LABEL=ROOT / ext4 errors=remount-ro 0 1 LABEL=HOMEOLD /media/homeold ext4 defaults 0 2 LABEL=HOME3TB /home ext4 defaults 0 2 LABEL=SWAP none swap sw 0 0
OS再起動。
sudo reboot
今回はすんなり引っ越しすることができた。
[ ツッコむ ]
#2 [windows][dtm] espeak-ngをWindows10上でもインストールしてみた
Windows10 x64 22H2上で、音声合成ツール espeak-ng 1.51 をインストールしてみた。
_Releases - espeak-ng/espeak-ng
espeak-ng-X64.msi を入手して実行するとインストーラが起動する。
どこかの段階でインストール先を尋ねてくるかなと期待したけど、問答無用で、C:\Program Files\eSpeak NG\ にインストールされた…。環境変数PATHも書き換えられて、件のフォルダパスが追加されている。
espeak-ng.exe にパスが通っているので、DOS窓を開いていきなり espeak-ng "hello world" と打てば音声が鳴る。ただ、再生された音声にはブツブツとノイズが入ってる感じがした。wav だか mp3 でファイル保存すれば違うのだろうか?
音質的に優れているわけでもないし、インストール場所も気に入らないので、アンインストールすることにした。ただ、アンインストール前に、インストールされた場所のファイル群を別の場所にコピーしておいた。
アンインストール後、別の場所にコピーしておいた espeak-ng.exe を実行してみたら、/usr/share/ 以下の何かのファイルが見つからないと言ってきてエラー表示になった。そこはLinux上で動かした際にアクセスするディレクトリ場所だよな…。Windows版を動かしてるはずなのに、何故…。
どうやら、インストーラでインストールする際に、Windows版が参照するべき場所を何かしら(レジストリ?)で指定してる気配がする。もしくは C:\Program Files\eSpeak NG\ 以下にデータが必ずあるはずだと決め打ちで処理しているか…。何にせよ、ファイル群を任意の場所に展開して実行すればそのまま動く作りではないらしい。
まあ、Linux上で動かせば使えるから、あえて Windows上で使わなくてもいいか…。
_Releases - espeak-ng/espeak-ng
espeak-ng-X64.msi を入手して実行するとインストーラが起動する。
どこかの段階でインストール先を尋ねてくるかなと期待したけど、問答無用で、C:\Program Files\eSpeak NG\ にインストールされた…。環境変数PATHも書き換えられて、件のフォルダパスが追加されている。
espeak-ng.exe にパスが通っているので、DOS窓を開いていきなり espeak-ng "hello world" と打てば音声が鳴る。ただ、再生された音声にはブツブツとノイズが入ってる感じがした。wav だか mp3 でファイル保存すれば違うのだろうか?
音質的に優れているわけでもないし、インストール場所も気に入らないので、アンインストールすることにした。ただ、アンインストール前に、インストールされた場所のファイル群を別の場所にコピーしておいた。
アンインストール後、別の場所にコピーしておいた espeak-ng.exe を実行してみたら、/usr/share/ 以下の何かのファイルが見つからないと言ってきてエラー表示になった。そこはLinux上で動かした際にアクセスするディレクトリ場所だよな…。Windows版を動かしてるはずなのに、何故…。
どうやら、インストーラでインストールする際に、Windows版が参照するべき場所を何かしら(レジストリ?)で指定してる気配がする。もしくは C:\Program Files\eSpeak NG\ 以下にデータが必ずあるはずだと決め打ちで処理しているか…。何にせよ、ファイル群を任意の場所に展開して実行すればそのまま動く作りではないらしい。
まあ、Linux上で動かせば使えるから、あえて Windows上で使わなくてもいいか…。
[ ツッコむ ]
2024/09/22(日) [n年前の日記]
#1 [dtm][python] Coqui-TTSを試用
Coqui-TTS という音声合成ライブラリがあるらしい。ディープラーニングで作られたTTS(Text to Speech)なのだとか。元々は Mozilla TTS というプロジェクトだったそうで。
_coqui-ai/TTS: a deep learning toolkit for Text-to-Speech, battle-tested in research and production
_TTS - PyPI
_coqui-tts - PyPI
Pythonのモジュールとしてインストールできるらしいのだけど、TTS と coqui-tts の2つがあるようで…。どっちがどう違うのか、よく分からない…。
Ubuntu Linux 22.04 LTS上でインストールして試用してみた。とりあえず今回は TTS のほうを試用してみる。
ハードウェアは、CPU : Intel i3-6100T、GPU : 内蔵GPU、RAM : 8GB。Python バージョンは 3.10.12。
TTS 0.22.0 の他に、色々なモジュールが山ほど入った。仮想環境を作って試したほうが良かったかもしれない…。
_coqui-ai/TTS: a deep learning toolkit for Text-to-Speech, battle-tested in research and production
_TTS - PyPI
_coqui-tts - PyPI
Pythonのモジュールとしてインストールできるらしいのだけど、TTS と coqui-tts の2つがあるようで…。どっちがどう違うのか、よく分からない…。
Ubuntu Linux 22.04 LTS上でインストールして試用してみた。とりあえず今回は TTS のほうを試用してみる。
ハードウェアは、CPU : Intel i3-6100T、GPU : 内蔵GPU、RAM : 8GB。Python バージョンは 3.10.12。
$ python --version Python 3.10.12
◎ インストール :
python -m pip install TTS
TTS 0.22.0 の他に、色々なモジュールが山ほど入った。仮想環境を作って試したほうが良かったかもしれない…。
◎ 使い方 :
Pythonモジュールではあるけれど、tts というコマンドラインツールも入っているので、それを使って動作確認。
実行すると、自動で足りないモデルデータをダウンロードしてから音声を生成してくれた。モデルデータは以下の場所に保存されるらしい。
以下の2つのファイルが入った。113MB と 3.8MBのファイルサイズだった。
さておき。22050Hz、モノラルの音声が得られた。
tts --text "Hello world" --out_path speech.wav
実行すると、自動で足りないモデルデータをダウンロードしてから音声を生成してくれた。モデルデータは以下の場所に保存されるらしい。
/home/(USERNAME)/.local/share/tts/
以下の2つのファイルが入った。113MB と 3.8MBのファイルサイズだった。
tts_models--en--ljspeech--tacotron2-DDC vocoder_models--en--ljspeech--hifigan_v2
さておき。22050Hz、モノラルの音声が得られた。
◎ 印象 :
espeak (espeak-ng) や festival と比べると、かなり滑らかでイイ感じの音声に聞こえた。
ただ、生成には数十秒(30秒ほど)かかった。おそらく、Intel製内蔵GPUしか持ってない環境だからCPUで生成しているのだろうけど…。espeak や festival はすぐに音声が聞こえたけれど、それらと比べると結構な時間がかかる。品質と時間のトレードオフだろうか。
GPUを使えばもうちょっと速く生成できたりするのかな…?
ところで、渡すテキストによっては、途中で「ホニャララウンジャラウニャウニャ」的な謎の音声が含まれて出力されるようで…。どういう条件なら出現するのか、ちょっとよく分からない…。
ただ、生成には数十秒(30秒ほど)かかった。おそらく、Intel製内蔵GPUしか持ってない環境だからCPUで生成しているのだろうけど…。espeak や festival はすぐに音声が聞こえたけれど、それらと比べると結構な時間がかかる。品質と時間のトレードオフだろうか。
GPUを使えばもうちょっと速く生成できたりするのかな…?
ところで、渡すテキストによっては、途中で「ホニャララウンジャラウニャウニャ」的な謎の音声が含まれて出力されるようで…。どういう条件なら出現するのか、ちょっとよく分からない…。
◎ Windows10上でもインストール :
Windows10 x64 22H2上でもインストールしてみた。ハードウェア環境は、CPU : AMD Ryzen 5 5600X、RAM : 16GB、GPU : NVIDIA GeForce FTX 1060 6GB。Python は 3.10.10。
今回は、X:\aiwork\coqui-tts\ というディレクトリを作って、その中にPythonの仮想環境を coquitts という名前で作って作業してみた。
Ubuntu Linuxと同様に TTS をインストール。
全体的に 6.34GB ほどのファイル群がインストールされた。
動作確認。
Ubuntu Linux上と同じように生成できた。モデルデータも、自動でダウンロードしてから処理をしてくれる。モデルデータは以下にダウンロードされる模様。
ただ、GPU (CUDA) を使おうとして --use_cuda true をつけてみるとエラーが出る。
以下で解決策が紹介されてた。
_pipでPyTorchインストール時に「Torch not compiled with CUDA enabled」エラー - Qiita
ただ、この操作をしてみても、自分の環境では相変わらずエラーが出たので、上記で紹介されていた、以下のページの作業を試してみた。
_Previous PyTorch Versions | PyTorch
自分の環境は、CUDA 11.8 をインストール済みなので、以下を打った。
この状態なら、--use_cuda true をつけても処理ができるようになった。
GPUを使った場合、生成時間がかなり短くなってくれた。短文では違いが分からないけれど、長文を渡すと圧倒的に生成時間が短い。数十秒かかっていたのが、数秒で終わる印象。
今回は、X:\aiwork\coqui-tts\ というディレクトリを作って、その中にPythonの仮想環境を coquitts という名前で作って作業してみた。
cd X:\aiwork\coqui-tts python -m venv coquitts .\coquitts\Scripts\activate
Ubuntu Linuxと同様に TTS をインストール。
python -m pip install TTS
> which TTS "X:\aiwork\coqui-tts\coquitts\Scripts\tts.exe"
全体的に 6.34GB ほどのファイル群がインストールされた。
動作確認。
tts --text "Hello world. Sally sells seashells by the seashore." --out_path helloworld.wav
Ubuntu Linux上と同じように生成できた。モデルデータも、自動でダウンロードしてから処理をしてくれる。モデルデータは以下にダウンロードされる模様。
C:\Users\(USERNAME)\AppData\Local\tts\
ただ、GPU (CUDA) を使おうとして --use_cuda true をつけてみるとエラーが出る。
tts --text "Speaker test. Left. Center. Right." --out_path speakertest.wav --use_cuda true
AssertionError: Torch not compiled with CUDA enabled
以下で解決策が紹介されてた。
_pipでPyTorchインストール時に「Torch not compiled with CUDA enabled」エラー - Qiita
ただ、この操作をしてみても、自分の環境では相変わらずエラーが出たので、上記で紹介されていた、以下のページの作業を試してみた。
_Previous PyTorch Versions | PyTorch
自分の環境は、CUDA 11.8 をインストール済みなので、以下を打った。
python -m pip uninstall torch python -m pip cache purge python -m pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu118
この状態なら、--use_cuda true をつけても処理ができるようになった。
GPUを使った場合、生成時間がかなり短くなってくれた。短文では違いが分からないけれど、長文を渡すと圧倒的に生成時間が短い。数十秒かかっていたのが、数秒で終わる印象。
◎ サンプル音声 :
一応サンプル音声も載せてみる。
helloworld.ogg
以下のファイルは、波形編集ソフト(SoundEngine Free 5.23_2)で、ステレオ化、サンプリング周波数を22050Hzから44100Hzに変更している。
speakertest.ogg
vifam.ogg
先日載せた音声サンプルも比較のために再掲しておく。
Ubuntu Linux 22.04 LTS + espeak-ng 1.50 の出力サンプル。
espeak_ng_hello.ogg
Windows10 x64 22H2 + edge-tts 6.1.12 の出力サンプル。
edge_tts_hello.ogg
tts --text "Hello world. Sally sells seashells by the seashore." --out_path helloworld.wav --use_cuda true
helloworld.ogg
以下のファイルは、波形編集ソフト(SoundEngine Free 5.23_2)で、ステレオ化、サンプリング周波数を22050Hzから44100Hzに変更している。
tts --text "Speaker test. Left. Center. Right." --out_path speakertest.wav --use_cuda true
speakertest.ogg
tts --text "Examine data link. Main trans engine. Number 1 2 ON. Number 3 4 OFF. Number 5 6 7 8 ON. Confirmed, round vernirn. Hello, I am VIFAM. Okay VIFAM. your number is 7. instrument recorder on. Permission to sortie. Permission granted. GOOD LUCK, VIFAM 7." --out_path vifam.wav --use_cuda true
vifam.ogg
先日載せた音声サンプルも比較のために再掲しておく。
Ubuntu Linux 22.04 LTS + espeak-ng 1.50 の出力サンプル。
espeak-ng "Hello world. Sally sells seashells by the seashore." -v "English (America)+f3" -s 150 -w espeak_ng_hello.wav
espeak_ng_hello.ogg
Windows10 x64 22H2 + edge-tts 6.1.12 の出力サンプル。
edge-tts -t "Hello world. Sally sells seashells by the seashore." -v en-US-AriaNeural --write-subtitles edge_tts_hello.vtt --write-media edge_tts_hello.mp3
edge_tts_hello.ogg
[ ツッコむ ]
2024/09/21(土) [n年前の日記]
#1 [dtm] Mary TTSについて調べてる
音声合成ツールについて調べているうちに、Mary TTS というツールがあることを知った。
_MaryTTS - Introduction
_marytts/marytts: MARY TTS -- an open-source, multilingual text-to-speech synthesis system written in pure java
_英語テキスト朗読ツールMaryTTS | AIお助けボックス
気になったので試用してみようと思ったのだけど、インストール方法からして分からない…。もうちょっと調べてみないと…。
_MaryTTS - Introduction
_marytts/marytts: MARY TTS -- an open-source, multilingual text-to-speech synthesis system written in pure java
_英語テキスト朗読ツールMaryTTS | AIお助けボックス
気になったので試用してみようと思ったのだけど、インストール方法からして分からない…。もうちょっと調べてみないと…。
◎ ダメだった事例 :
以下の動画を参考にしながら作業。Windows10 x64 22H2 + Java 1.8.0_421上で実験。
_Install Open Mary TTS in Windows - YouTube
以下のページから marytts-5.2.zip を取得して解凍。任意のフォルダに置いた。
_MaryTTS - Download
音声データらしきものを取得。以下の .xml に zip ファイルのURLが書いてあるので、一つずつDLしていった。
_marytts/download/marytts-components.xml at master - marytts/marytts
ただ、github.com に置いてある zip は入手できるけど、mary.dfki.de のURLは404になっていて、そこに置いてあったらしい zip は入手できない…。
とりあえず、DLできたzipだけでも解凍。中には lib/*.jar があるので、marytts-5.2.zip を解凍してできたフォルダ内の lib/ の中にコピー。
これで、bin/marytts-server.bat を実行してサーバを起動しておいてから、bin/marytts-client.bat を実行すれば動くはずなのだけど。marytts-client.bat を実行した段階で、サーバ側もクライアント側も両方エラーを出して終了してしまう。
当時は Java 8 で動かしていたらしい。Java が新し過ぎると動かないのだろうか?
_Install Open Mary TTS in Windows - YouTube
以下のページから marytts-5.2.zip を取得して解凍。任意のフォルダに置いた。
_MaryTTS - Download
音声データらしきものを取得。以下の .xml に zip ファイルのURLが書いてあるので、一つずつDLしていった。
_marytts/download/marytts-components.xml at master - marytts/marytts
ただ、github.com に置いてある zip は入手できるけど、mary.dfki.de のURLは404になっていて、そこに置いてあったらしい zip は入手できない…。
とりあえず、DLできたzipだけでも解凍。中には lib/*.jar があるので、marytts-5.2.zip を解凍してできたフォルダ内の lib/ の中にコピー。
これで、bin/marytts-server.bat を実行してサーバを起動しておいてから、bin/marytts-client.bat を実行すれば動くはずなのだけど。marytts-client.bat を実行した段階で、サーバ側もクライアント側も両方エラーを出して終了してしまう。
当時は Java 8 で動かしていたらしい。Java が新し過ぎると動かないのだろうか?
[ ツッコむ ]
以上、3 日分です。