はじめに
Auto-Audio-BookはGitHubでホストされているオープンソースプロジェクトである。ウェブサイトから小説コンテンツを自動的にクロールし、複数のキャラクターの声を持つオーディオブックに変換します。開発者のzqq-nuliはPython 3.10+で書かれており、大規模なモデル(例えば ジェミニ とCosyVoice2-0.5B)を使って、テキスト処理と音声合成を実装した。このプロジェクトは、基本的なテキストから音声への変換をサポートするだけでなく、小説の登場人物を区別したり、ラジオドラマのような効果を生み出すために異なる声を割り当てたりすることもできる。コードは一般に公開されており、ユーザーは自由にダウンロードして改変することができる。2025年3月24日現在、このプロジェクトはまだ開発中であり、GUIは完全には完成していないが、コマンドラインですべてのプロセスを完了することができ、技術愛好家やオーディオブック制作者に適している。
機能一覧
- 小説クロール小説の各章の内容を、指定されたウェブサイトから自動的にダウンロードします。
- 対話メッセージの生成AIを使って文章を分析し、登場人物とセリフを区別する。
- マルチキャラクター・ナレーション架空のキャラクター、脇役の主人公、ナレーター、そしてランダムな吹き替えに異なる声を割り当てます。
- オーディオ・ジェネレーションマルチスレッド・アクセラレーションをサポートし、テキストをオーディオブック用のMP3フォーマットに変換します。
- 管理ツール: 小説データやオーディオファイルの管理を支援するGUIを提供します。
- オープンソースで拡張可能ユーザーは、新しい機能を追加したり、効果を最適化するためにコードを修正することができます。
ヘルプの使用
Auto-Audio-Bookのインストールと使用には、一定の技術的基礎が必要です。以下は、ゼロからオーディオブックを作成するための詳細なインストールと操作ガイドです。
設置プロセス
- 環境準備
- https://www.python.org/downloads/ からダウンロードした Python 3.10 以降をインストールする。
- 取り付け
ffmpeg
Windowsの場合は、https://ffmpeg.org/download.html からダウンロードしてください。brew install ffmpeg
Linuxとsudo apt install ffmpeg
. - (オプション) 小説データをGUIで管理するためにMongoDBをインストールする。https://www.mongodb.com/try/download/community からダウンロードする。
- 環境をチェックするには:コマンドラインで次のようにタイプする。
python --version
歌で応えるffmpeg -version
バージョンが正しく表示されていることを確認してください。
- ダウンロードコード
- Gitを使ってプロジェクトをローカルにクローンする:
git clone https://github.com/zqq-nuli/auto-audio-book.git
- プロジェクト・カタログにアクセスする:
cd auto-audio-book
- Gitを使ってプロジェクトをローカルにクローンする:
- 仮想環境の構築
- 利用する
uv
仮想環境の作成(事前のインストールが必要です)uv
使用pip install uv
):uv venv --python 3.10
- 環境を活性化させる:
- ウィンドウズ
.\.venv\Scripts\activate
- Mac/Linux:
source .venv/bin/activate
- ウィンドウズ
- 利用する
- 依存関係のインストール
- 仮想環境に必要なライブラリをインストールする:
uv add -r requirements.txt
- 不足している場合
requirements.txt
コア・ライブラリは手動でインストールできる:pip install requests gTTS PyPDF2 pymongo
- 仮想環境に必要なライブラリをインストールする:
- APIキーの設定
- のコピーを取る。
.env.example
ファイルは.env
::copy .env.example .env # Windows cp .env.example .env # Mac/Linux
- コンパイラ
.env
ファイルに、対応するプラットフォームからリクエストできるGeminiのキーなどのBig Model API Keyを記入します。
- のコピーを取る。
使用手順
- 小説を読む
- フィクション・サイト(例:https://m.ilwxs.com/)を選択する。プロジェクトはデフォルトで保護されていないサイトをサポートしている。
- クロールスクリプトを実行する:
python app/getBookList.py
- その後、チャプターのリストを取得し、内容を保存する:
python app/getZjList.py python app/saveBooks.py
- 対話メッセージの作成
- 登場人物と台詞を区別するために、AIでチャプターを処理する:
python app/saveBookJson.py
- 出力はJSONファイルとして保存され、その後のダビングに利用できる。
- 登場人物と台詞を区別するために、AIでチャプターを処理する:
- キャラクターボイスの設定
- スクリプトを実行してロール・テーブルを作成する:
python app/createUser.py
- 主人公とナレーターの声を手動で割り当て可能(CosyVoice2-0.5Bなどの機種に対応)。その他のキャラクターはランダムで割り当て可能:
- 50以上のセリフがあるキャラクターには個別のボイスをつける。
- ナレーターの声で50センテンス以下。
- スクリプトを実行してロール・テーブルを作成する:
- オーディオの生成
- オーディオ生成スクリプトを実行する:
python app/createAudio.py
- 20スレッドなどのマルチスレッド・アクセラレーションをサポート:
python app/createAudio.py --threads 20
- 出力はMP3ファイルで、プロジェクト・ディレクトリに保存される。
- オーディオ生成スクリプトを実行する:
- オーディオの管理(オプション)
- GUIツールでオーディオをソート:
python gui/gui.py
- あるいはヒマラヤのエントリーを一括削除する:
python gui/gui2.py
- GUIツールでオーディオをソート:
運営ノート
- 効率の最適化1台のコンピューターは、1スレッドで一晩に300のチャプターを処理できる。テストによると、5台のマシンがそれぞれ20スレッドで、5時間で2000チャプターを生成できる。
- エラー検出チャプターを見逃した場合は、ネットワークをチェックするか、該当するチャプターのスクリプトを再実行してください。
- モデルの制約シリコンベースのモデルはIPに制約があり、マルチコンピュータ並列のためにはサーバーの乗っ取りが必要です。
プロセス例
小説を変換しているとする:
- https://m.ilwxs.com/ の小説「そうそう」をクロールし、章を保存する。
- 主人公Aと語り手を特定し、対話のメッセージを生成する。
- 構成Aは中国語の男性の声、ナレーターは女性の声、その他はランダム。
- マルチスレッド生成の実行
chapter1.mp3
その他
完成したら、ヒマラヤなどのプラットフォームにアップロードできる。完成品の例はhttps://www.ximalaya.com/album/88023000。
アプリケーションシナリオ
- オーディオブック制作
ウェブ小説を複数文字のオーディオブックに変換し、共有や利益のためにプラットフォームにアップロードする。 - 学習実験
技術愛好家たちは、クローリング、AI、音声処理技術を学ぶために利用している。 - パーソナル・エンターテインメント
お気に入りの小説をオーディオ化して、いつでもどこでも聴くことができます。
品質保証
- どのような大型モデルに対応していますか?
現在、GeminiとCosyVoice2-0.5Bをサポートしています。 - いくつかの章が生成されないのはなぜですか?
ネットワーク障害かクロール障害かもしれないので、ログをチェックし、該当する章を再実行してください。 - どうすれば音質を改善できますか?
デフォルトモデルの効果は限定的で、他のTTSエンジンに置き換えることができます。