epub2tts は、Coqui AI TTS、OpenAI、または MS Edge のリアルなテキスト読み上げを使用して、epub またはテキスト ファイルからフル機能のオーディオブックを簡単に作成する、無料のオープンソース Python アプリです。
注:新しいマルチプロセス機能が追加されました。 --threads N
使用して、章が並行して処理される実行スレッドの数を指定できるようになりました。 Edge または OpenAI を使用している場合は、スレッドを必要な数の章に設定でき、それらをすべて同時に処理できます。 TTS/XTTS を使用する場合、システムが何を処理できるかを確認するためにいくつかの実験を行う必要があります。
注: MS Edge でのみ動作する非常に高速で軽量な代替手段については、epub2tts-edge をチェックしてください。このバージョンでは複数の文を並行して読み込むため、処理がはるかに速くなります。
epub2tts mybook.epub --export txt
# Part 1
などを目的の章名に置き換え、目次やその他の読みたくない前付を削除します。注:最初の 2 行は、オーディオブックのメタデータで使用するために Title: と Author: にすることができます。また、著者/タイトルの後に、書籍のコピーは、先頭にハッシュマークが付いた行でマークされた章またはセクションで開始する必要があります ( # Introduction
など)。% <speaker>
を追加することで、チャプターごとにスピーカーを変更するように設定できます (例: # Chapter One % en-US-AvaMultilingualNeural
)。例については、ファイルmulti-speaker-sample-edge.txt
を参照してください。注: Coqui TTS マルチスピーカー エンジン (デフォルト) または--engine edge
でのみ動作します。 VITS モデルを使用し、すべてデフォルトで、GPU は必要ありません。
epub2tts mybook.epub
(スピーカーを変更するには (例: Coqui TTS を使用した良い男性の声の p307)、追加: --speaker p307
) クラウドで Microsoft Edge TTS を使用し、無料で最小限の CPU のみが必要で、かなり高速です (たとえば、7 時間の本で 100 分)。多くの音声と言語から選択でき、品質は非常に優れています (例として、 sample-en-US-AvaNeural-edge.m4b
を聞いてください)。
edge-tts --list-voices
を使用して利用可能な音声をリストします。 --speaker
が指定されていない場合、デフォルトのスピーカーはen-US-AndrewNeural
です。epub2tts mybook.txt --engine edge --speaker en-US-AvaNeural --cover cover-image.jpg --sayparts
epub2tts mybook.txt --engine xtts --speaker "Damien Black" --cover cover-image.jpg --sayparts
epub2tts mybook.epub --scan
、目次などをスキップできるように、開始部分と終了部分を決定します。epub2tts my-book.epub --start 4 --end 20 --xtts voice-1.wav,voice-2.wav,voice-3.wav --cover cover-image.jpg
--export txt
を使用する場合、このオプションは各段落区切りに%P%
を挿入します。その後、 --engine edge
を使用してオーディオを作成するときに、コピー内で%P%
が見つかると、1.2 秒の一時停止が挿入されます。発生したバグや問題を事前に報告していただきありがとうございます。問題が発生した場合は、まず既存の問題を検索して、他の人が以前に同様の問題に遭遇していないかどうかを確認してください。
新しいものを見つけた場合は、問題を開いて次の情報を必ず含めてください。
--debug --minratio 0
を追加してコマンドを再度実行して、詳細情報を取得してください。--threads N
機能の追加、および方法の検出を向上させる NCX ファイルのサポートが含まれます。テキストはepubに分割されます。--skip-cleanup
オプションを追加しました。xtts_v2 の一般的な推論時間は、4 つの処理チャンク (それぞれ約 4 文) で平均化され、予想されます。
| Hardware | Inference Time |
|-------------------------------------|----------------|
| 20x CPU Xeon E5-2630 (without AVX) | 3.7x realtime |
| 20x CPU Xeon Silver 4214 (with AVX) | 1.7x realtime |
| 8x CPU Xeon Silver 4214 (with AVX) | 2.0x realtime |
| 2x CPU Xeon Silver 4214 (with AVX) | 2.9x realtime |
| Intel N4100 Atom (NAS) | 4.7x realtime |
| GPU RTX A2000 4GB (w/o deepspeed) | 0.4x realtime |
| GPU RTX A2000 4GB (w deepspeed) | 0.15x realtime |
必要な Python バージョンは 3.11 です。
このインストールには、Python < 3.12 と Homebrew が必要です (espeak、pyenv、ffmpeg のインストールには homebrew を使用しています)。このバグにより、mecab も homebrew 経由でインストールする必要があります。
音声モデルはローカルの~/.local/share/tts
に保存されます
#install dependencies
brew install espeak pyenv ffmpeg mecab
#install epub2tts
git clone https://github.com/aedocw/epub2tts
cd epub2tts
pyenv install 3.11
pyenv local 3.11
#OPTIONAL but recommended - install this in a virtual environment
pip install coqui-tts --only-binary spacy
python -m venv .venv && source .venv/bin/activate
pip install .
これらの手順は Ubuntu 22.04 (20.04 には依存関係の問題がいくつかありました) を対象としていますが、(適切なパッケージ インストーラー MOD を使用すれば) ほぼすべてのリポジトリで機能するはずです。使用する前にffmpeg
がインストールされていることを確認してください。 NVIDIA GPU を使用している場合は、ディープスピードを利用するために CUDA ツールキットもインストールする必要があります。
音声モデルはローカルの~/.local/share/tts
に保存されます
#install dependencies
sudo apt install espeak-ng ffmpeg
#If you have a CUDA-compatible GPU, run:
sudo apt install nvidia-cuda-toolkit
#clone the repo
git clone https://github.com/aedocw/epub2tts
cd epub2tts
pip install coqui-tts --only-binary spacy
pip install .
注: deepspeed がインストールされている場合、検出されても正しく動作せず、エラーが発生する可能性があります。 CUDA ツールキットをインストールして、問題が解決されるかどうかを確認してください。それでも問題が解決しない場合は、 --no-deepspeed
を追加すると使用されなくなります。その場合も、詳細を記載して問題を提起してください。調査させていただきます。
Ubuntu 22 を使用して WSL2 で epub2tts を実行するのが最も簡単な方法ですが、これらの手順は Windows で直接実行する場合にも機能するはずです。
Microsoft C++ ビルド ツールをインストールします。 https://visualstudio.microsoft.com/visual-cpp-build-tools/ からインストーラーをダウンロードし、ダウンロードしたファイルvs_BuildTools.exe
を実行し、すべてのオプションをデフォルト値のままにして、「C++ ビルド ツール」チェックボックスを選択します。注:これには、C ドライブに約 7 GB のスペースが必要です。
https://github.com/espeak-ng/espeak-ng/releases/latest から espeak-ng をインストールします
チョコレートをインストールする
コマンドchoco install ffmpeg
を使用して ffmpeg をインストールします。昇格した PowerShell セッションにいることを確認してください。
コマンドchoco install python311
を使用して Python 3.11 をインストールします。
コマンドchoco install git
を使用して git をインストールします。
epub2tts プロジェクトをどこに置くかを決めます。ドキュメントは一般的な場所です。満足のいくディレクトリを見つけたら、 git clone https://github.com/aedocw/epub2tts
および cd epub2tts を使用してプロジェクトのクローンを作成し、作業ディレクトリに移動します。
おそらくいくつかの異なる方法があると思いますが、私は個人的に、すべてを整理しておくために venv を選択しました。コマンドpython -m venv .venv
を使用して venv を作成します。
venv をアクティブにします。Windows では、 .venvscriptsactivate
発行するため、コマンドは少し異なります。
コマンドpip install coqui-tts --only-binary spacy && pip install .
すべてがうまくいけば、venv 内から epub2tts を呼び出し、このディレクトリから更新できるようになります。更新するには、 git pull
使用してからpip install . --upgrade
発生する可能性のあるいくつかのエラー
pip install lxml
実行して最新バージョンを手動でインストールしてから、 pip install .
python -c "import nltk"
次にpython -m nltk.downloader punkt
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
--no-deepspeed
を追加すると使用されなくなります。注: Docker イメージは最近更新またはテストされていないため、動作している可能性がありますが、古いです。
音声モデルはローカルの~/.local/share/tts
に保存されます
Docker の使用では GPU が確実に利用されません。これを改善したいと考えている人がいれば、あなたの PR を大歓迎します。
Linux および MacOS の場合:
alias epub2tts='docker run -e COQUI_TOS_AGREED=1 -v "$PWD:$PWD" -v ~/.local/share/tts:/root/.local/share/tts -w "$PWD" ghcr.io/aedocw/epub2tts:release'
Windowsの場合: 前提条件:
#Example for running scan of "mybook.epub"
docker run -e COQUI_TOS_AGREED=1 -v ${PWD}/.local/share/tts:/root/.local/share/tts -v ${PWD}:/root -w /root ghcr.io/aedocw/epub2tts:release mybook.epub --scan
#Example for reading parts 3 through 15 of "mybook.epub"
docker run -e COQUI_TOS_AGREED=1 -v ${PWD}/.local/share/tts:/root/.local/share/tts -v ${PWD}:/root -w /root ghcr.io/aedocw/epub2tts:release mybook.epub --start 3 --end 15
#clone the repo
git clone https://github.com/aedocw/epub2tts
cd epub2tts
#create a virtual environment
python -m venv .venv
#activate the virtual environment
source .venv/bin/activate
#install dependencies
sudo apt install espeak-ng ffmpeg
pip install coqui-tts --only-binary spacy
pip install -r requirements.txt
git pull
pip install . --upgrade
?クリストファー・アエド
貢献者
貢献、問題、機能リクエストは大歓迎です!
問題ページまたはディスカッションページを自由にチェックしてください。
このプロジェクトが役に立った場合は ️ をあげてください!