
Read2Me ist eine Fastapi-Anwendung, die Inhalte aus der bereitgestellten URLs abreißt, den Text verarbeitet, sie mithilfe von Microsoft Azure's Edge TTS oder mit den lokalen TTS-Modellen F5-TTS, Styletts2 oder Piper TTs in Sprache umwandelt und die resultierenden MP3-Dateien mit Metadata taggt. Sie können den vollständigen Text entweder in Audio verwandeln oder einen LLM -Saatgut in einen Podcast umwandeln lassen. Derzeit werden Ollama und jede OpenAI -kompatible API unterstützt. Sie können die bereitgestellte Chromverlängerung in jedem Chrombasis-Browser (z. B. Chrome oder Microsoft Edge) installieren, um aktuelle URLs oder einen beliebigen Text an die Abneigung zu senden, Quellen und Schlüsselwörter für das automatische Abrufen hinzuzufügen.
Dies ist derzeit eine Beta -Version, aber ich habe vor, sie zu erweitern, um andere Inhaltstypen (z. B. EPUB) in Zukunft zu unterstützen und robustere Unterstützung für andere Sprachen als Englisch zu bieten. Derzeit unterstützt es bei Verwendung der Standard -Azure Edge -TTS bereits andere Sprachen und versucht, sie aus dem Text zu autodieren, aber die Qualität kann je nach Sprache variieren.
requirements.txt aufgeführt sind. Klonen Sie das Repository:
git clone https://github.com/WismutHansen/READ2ME.git
cd read2meErstellen und aktivieren Sie eine virtuelle Umgebung:
python -m venv .venv
source .venv/bin/activate # On Windows: .venvScriptsactivateOder wenn Sie UV für das Paketverwaltung verwenden möchten:
uv venv
source .venv/bin/activate # On Windows: .venvScriptsactivateAbhängigkeiten installieren:
pip install -r requirements.txt (or uv pip install -r requirements.txt)Installieren Sie auch die zusätzlichen Abhängigkeiten für das lokale Model von Styletts2 Text-to-Speech-Modell:
pip install -r requirements_stts2.txt (or uv pip install -r requirements_stts2.txt)Für das F5-TTS-Modell installieren Sie bitte auch die zusätzlichen Abhängigkeiten:
pip install -r requirements_F5.txt (or uv pip install -r requirements_F5.txt)Dramatiker installieren
playwright installWenn Sie UV verwenden, installieren Sie bitte auch:
uv pip install pipFür lokale Pipertts -Unterstützung:
python3 -m TTS.piper_tts.instalpipertts (MacOS and Linux) or python -m TTS.piper_tts.instalpipertts (on Windows)HINWEIS: FFMPEG ist erforderlich, wenn entweder Styletts2 oder Pipertts zum Konvertieren von WAV -Dateien in MP3 verwendet wird. Styletts erfordert auch, dass ESPEAK-NG in Ihrem System installiert werden kann.
Umgebungsvariablen einrichten:
Nennen Sie .env.example -Datei im Root Director in .env und bearbeiten Sie den Inhalt zu Ihrer Präferenz:
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, OpenAISie können entweder OLLAMA oder eine OpenAI -kompatible API für Titel- und Podcast -Skriptgenerierung verwenden (Zusammenfassungsfunktion kommt auch in Kürze)
Klonen Sie das Repository und wechseln Sie hinein:
git clone https://github.com/WismutHansen/READ2ME.git && cd read2meKopieren Sie das .Env.example in .env und bearbeiten Sie den Inhalt: Wichtig: Bei Verwendung eines lokalen LLM-Engine-Eg-Ollama muss die URL diesem Format folgen.
Bauen Sie den Docker -Container auf
docker build -t read2me . HINWEIS: Die Bauzeit dauert lange, sei geduldig
Führen Sie den Docker -Container aus
docker run -p 7777:7777 -d read2meHINWEIS: Die Bauzeit dauert lange, sei geduldig
kopieren und umbenennen .env.example in .env . Bearbeiten Sie den Inhalt dieser Datei nach Belieben, geben Sie das Ausgabemaschine, die Task -Datei und den Bildpfad an, die für das Cover von MP3 -Dateien sowie die Quellen- und Schlüsselwörterdatei verwendet werden sollen.
Führen Sie die Fastapi -Anwendung aus:
uvicorn main:app --host 0.0.0.0 --port 7777Oder wenn Sie über SSH mit einem Linux -Server angeschlossen sind und die App nach dem Schließen Ihrer Sitzung aufnehmen möchten
nohup uvicorn main:app --host 0.0.0.0 --port 7777 & Dadurch wird alle Befehlszeilenausgaben in eine Datei namens nohup.out in Ihrem aktuellen Arbeitsverzeichnis geschrieben.
URLs zur Verarbeitung hinzufügen:
Senden Sie eine Postanforderung an http://localhost:7777/v1/url/full mit einem JSON -Körper, der die URL enthält:
{
"url" : " https://example.com/article "
} Sie können curl oder einen API -Client wie Postman verwenden, um diese Anfrage wie folgt zu senden:
curl -X POST http://localhost:7777/v1/url/full/
-H " Content-Type: application/json "
-d ' {"url": "https://example.com/article"} '
-d ' {"tts-engine": "edge"} 'Das Repository enthält auch eine funktionierende Chromverlängerung, die Sie in jedem Chrombasis-Browser (z. B. Google Chrome) installieren können, wenn die Entwicklereinstellungen aktiviert sind.
Verarbeitungs -URLs:
Die Anwendung überprüft regelmäßig die Datei tasks.json , damit neue Jobs verarbeiten können. Es holt den Inhalt für eine bestimmte URL ab, extrahiert Text, konvertiert ihn in Sprache und speichert die resultierenden MP3 -Dateien mit entsprechenden Metadaten.
Geben Sie Quellen und Schlüsselwörter für das automatische Abrufen an:
Erstellen Sie eine Datei namens sources.json in Ihrem aktuellen Arbeitsverzeichnis mit URLs auf Websites, die Sie für neue Artikel überwachen möchten. Sie können auch globale Keywords und Schlüsselwörter von pro-Source als Filter für automatisches Abrufen festlegen. Wenn Sie "*" für eine Quelle festlegen, werden alle neuen Artikel abgerufen. Hier ist eine Beispielstruktur:
{
"global_keywords" : [
" globalkeyword1 " ,
" globalkeyword2 "
],
"sources" : [
{
"url" : " https://example.com " ,
"keywords" : [ " keyword1 " , " keyword2 " ]
},
{
"url" : " https://example2.com " ,
"keywords" : [ " * " ]
}
]
}Die Position beider Dateien kann in .Env -Datei konfiguriert werden.
Um das nächste Frontend zu verwenden, stellen Sie sicher, dass Sie Node.js auf Ihrem System installiert haben. Hinweis: Frontend befindet sich derzeit in einer frühen experimentellen Phase. Erwarten Sie also viele Fehler: Erstens in das Frontend -Verzeichnis wechseln
cd frontendInstallieren Sie dann die erforderlichen Knotenabhängigkeiten:
npm installDann mit dem Frontend -Lauf starten:
npm run devSie können auf die Frontend unter http: // localhost: 3000 zugreifen
Post/V1/URL/voll
Fügt der Verarbeitungsliste eine URL hinzu.
Antragsbehörde:
{
"url" : " https://example.com/article " ,
"tts-engine" : " edge "
}Antwort:
{
"message" : " URL added to the processing list "
}Post/V1/URL/Podcast
Post/v1/text/voll
Post/V1/Text/Podcast
Geben Sie das Repository auf.
Erstellen Sie einen neuen Zweig:
git checkout -b feature/your-feature-nameNehmen Sie Ihre Änderungen vor und begehen Sie sie:
git commit -m ' Add some feature 'In den Zweig drücken:
git push origin feature/your-feature-nameSenden Sie eine Pull -Anfrage.
Dieses Projekt ist unter der Apache -Lizenzversion 2.0 im Januar 2004 lizenziert, mit Ausnahme des Styletts2 -Code, der unter der MIT -Lizenz lizenziert ist. Die F5-TTS ABD Styletts2-Vorausgebläer-Modelle stehen unter ihrer eigenen Lizenz.
Styletts2 Vorgebildete Modelle: Bevor Sie diese vorgebreiteten Modelle verwenden, erklären Sie sich damit einverstanden, den Hörern darüber zu informieren, dass die Sprachmuster von den vorgebreiteten Modellen synthetisiert werden, es sei denn, Sie haben die Erlaubnis, die von Ihnen synthetisierte Stimme zu verwenden. Das heißt, Sie erklären sich damit einverstanden, nur Stimmen zu verwenden, deren Sprecher der Erlaubnis erteilen, ihre Stimme entweder direkt oder durch Lizenz zu klonen, bevor Sie synthetisierte Stimmen öffentlich machen, oder Sie müssen öffentlich bekannt geben, dass diese Stimmen synthetisiert werden, wenn Sie nicht die Erlaubnis haben, diese Stimmen zu verwenden.
Ich möchte mich bei den folgenden Repositorys und Autoren für ihre Inspiration und ihren Code bedanken: