
read2meは、提供されたURLからコンテンツを取得し、テキストを処理し、Microsoft Azure's Edge TTSを使用して音声に変換するFASTAPIアプリケーションです。全文をオーディオに変えるか、LLMにシードテキストをポッドキャストに変換することができます。現在、OllamaおよびOpenai互換性のあるAPIはサポートされています。 Chromiumベースのブラウザ(ChromeまたはMicrosoft Edgeなど)に提供されたChromium拡張機能をインストールして、現在のURLまたはテキストをSEVERに送信できます。自動フェッチング用のソースとキーワードを追加できます。
これは現在ベータ版ですが、将来、他のコンテンツタイプ(EPUBなど)をサポートし、英語以外の言語をより堅牢なサポートを提供するように拡張する予定です。現在、デフォルトのAzure Edge TTSを使用する場合、すでに他の言語をサポートしており、テキストから自動化しようとしますが、品質は言語によって異なる場合があります。
requirements.txtにリストされている依存関係、F5およびStyletts2の個別の要件。 リポジトリをクローンします:
git clone https://github.com/WismutHansen/READ2ME.git
cd read2me仮想環境を作成してアクティブ化します。
python -m venv .venv
source .venv/bin/activate # On Windows: .venvScriptsactivateまたは、パッケージ管理にUVを使用したい場合:
uv venv
source .venv/bin/activate # On Windows: .venvScriptsactivate依存関係をインストールします:
pip install -r requirements.txt (or uv pip install -r requirements.txt)ローカルStyletts2テキストからスピーチモデルについては、追加の依存関係もインストールしてください。
pip install -r requirements_stts2.txt (or uv pip install -r requirements_stts2.txt)F5-TTSモデルについては、追加の依存関係もインストールしてください。
pip install -r requirements_F5.txt (or uv pip install -r requirements_F5.txt)Playwrightをインストールします
playwright installUVを使用する場合は、インストールしてください。
uv pip install pipローカルピパートのサポートの場合:
python3 -m TTS.piper_tts.instalpipertts (MacOS and Linux) or python -m TTS.piper_tts.instalpipertts (on Windows)注: WAVファイルをMP3に変換するためにStyletts2またはPiperttsのいずれかを使用する場合、FFMPEGが必要です。また、Stylettsでは、ESPEAK-NGをシステムにインストールする必要があります。
環境変数の設定:
Root Directorの.env.exampleファイルを.envに変更し、コンテンツを好みに合わせて編集します。
OUTPUT_DIR=Output # Directory to store output files
SOURCES_FILE=sources.json # File containing sources to retrieve articles from twice a day
IMG_PATH=front.jpg # Path to image file to use as cover
OLLAMA_BASE_URL=http://localhost:11434 # Standard Port for Ollama
OPENAI_BASE_URL=http://localhost:11434/v1 # Example for Ollama Open AI compatible endpoint
OPENAI_API_KEY=skxxxxxx # Your OpenAI API Key in case of using the official OpenAI API
MODEL_NAME=llama3.2:latest
LLM_ENGINE=Ollama # Valid Options: Ollama, OpenAIタイトルとポッドキャストのスクリプト生成には、OllamaまたはOpenai互換APIのいずれかを使用できます(まもなく登場)
リポジトリをクローンして、それに切り替えます。
git clone https://github.com/WismutHansen/READ2ME.git && cd read2me.env.exampleを.envにコピーしてコンテンツを編集します。重要:重要:ローカルLLMエンジンEg Ollamaを使用する場合、URLはこの形式「host.docker.internal:11434」または「host.docker.internal:1234」(lmstudioの場合)に従う必要があります。
Dockerコンテナを構築します
docker build -t read2me . 注:ビルド時間には長い時間がかかり、忍耐強くなります
Dockerコンテナを実行します
docker run -p 7777:7777 -d read2me注:ビルド時間には長い時間がかかり、忍耐強くなります
.env.example to .envにコピーして名前を変更します。必要に応じてこのファイルのコンテンツを編集し、MP3ファイルカバーに使用する出力ディレクトリ、タスクファイル、およびイメージパス、およびソースとキーワードファイルを指定します。
FASTAPIアプリケーションを実行します:
uvicorn main:app --host 0.0.0.0 --port 7777または、SSH経由のLinuxサーバーEGに接続し、セッションを閉じた後にアプリを実行し続けたい場合
nohup uvicorn main:app --host 0.0.0.0 --port 7777 &これにより、すべてのコマンドライン出力が、現在の作業ディレクトリのnohup.outというファイルに記載されます。
処理用のURLを追加します:
http://localhost:7777/v1/url/fullにhttp:// localhostに投稿リクエストを送信します。
{
"url" : " https://example.com/article "
} curlまたはPostmanのようなAPIクライアントを使用して、このようなリクエストを送信できます。
curl -X POST http://localhost:7777/v1/url/full/
-H " Content-Type: application/json "
-d ' {"url": "https://example.com/article"} '
-d ' {"tts-engine": "edge"} 'リポジトリには、開発者の設定が有効になっているときに任意のChromiumベースのブラウザ(Google Chromeなど)にインストールできる動作クロム拡張機能も含まれています。
URLの処理:
アプリケーションは、 tasks.jsonファイルを定期的にチェックして、新しいジョブが処理されるようにします。特定のURLのコンテンツを取得し、テキストを抽出し、音声に変換し、結果のMP3ファイルを適切なメタデータで保存します。
自動検索のためにソースとキーワードを指定します。
新しい記事を監視したいWebサイトへのURLを使用して、現在の作業ディレクトリにsources.jsonというファイルを作成します。また、自動検索のフィルターとして使用するグローバルキーワードとソースごとのキーワードを設定することもできます。ソースに「*」を設定すると、すべての新しい記事が取得されます。これが構造の例です。
{
"global_keywords" : [
" globalkeyword1 " ,
" globalkeyword2 "
],
"sources" : [
{
"url" : " https://example.com " ,
"keywords" : [ " keyword1 " , " keyword2 " ]
},
{
"url" : " https://example2.com " ,
"keywords" : [ " * " ]
}
]
}両方のファイルの場所は、.envファイルで構成可能です。
Next.js FrontEndを使用するには、システムにnode.jsがインストールされていることを確認してください。注:フロントエンドは現在初期の実験段階にあるので、多くのバグを期待してください:最初に、フロントエンドディレクトリに切り替えます
cd frontend次に、必要なノード依存関係をインストールします。
npm install次に、フロントエンドの実行を開始します。
npm run devhttp:// localhost:3000のフロントエンドにアクセスできます
post/v1/url/full
処理リストにURLを追加します。
リクエストボディ:
{
"url" : " https://example.com/article " ,
"tts-engine" : " edge "
}応答:
{
"message" : " URL added to the processing list "
}POST/V1/URL/ポッドキャスト
post/v1/text/full
投稿/V1/テキスト/ポッドキャスト
リポジトリをフォークします。
新しいブランチを作成します:
git checkout -b feature/your-feature-nameあなたの変更を加えてコミットします:
git commit -m ' Add some feature 'ブランチへのプッシュ:
git push origin feature/your-feature-nameプルリクエストを送信します。
このプロジェクトは、MITライセンスに基づいてライセンスされているStyletts2コードを除き、2004年1月のApacheライセンスバージョン2.0の下でライセンスされています。 F5-TTS ABD Styletts2事前訓練モデルは、独自のライセンスの下にあります。
Styletts2事前訓練モデル:これらの事前訓練を受けたモデルを使用する前に、合成した音声を使用する許可がない限り、スピーチサンプルが事前に訓練されたモデルによって合成されることをリスナーに通知することに同意します。つまり、スピーカーが合成された声を公開する前に直接またはライセンスで音声をクローン化する許可を認める声のみを使用することに同意するか、これらの声を使用する許可がない場合はこれらの声が合成されることを公に発表する必要があります。
インスピレーションとコードについて、次のリポジトリと著者に感謝します。