
Read2Me adalah aplikasi FASTAPI yang mengambil konten dari URL yang disediakan, memproses teks, mengubahnya menjadi pidato menggunakan TTS Edge Azure Microsoft Azure atau dengan model TTS lokal F5-TTS, Styletts2 atau Piper TTS, dan menandai file MP3 yang dihasilkan dengan metadata. Anda dapat mengubah teks lengkap menjadi audio atau meminta LLM mengubah teks benih menjadi podcast. Saat ini Ollama dan API yang kompatibel Openai didukung. Anda dapat menginstal ekstensi kromium yang disediakan di browser berbasis kromium (misalnya Chrome atau Microsoft Edge) untuk mengirim URL saat ini atau teks apa pun ke Sever, tambahkan sumber dan kata kunci untuk pengambilan otomatis.
Ini adalah versi beta saat ini tetapi saya berencana untuk memperluasnya untuk mendukung jenis konten lainnya (misalnya, EPUB) di masa depan dan memberikan dukungan yang lebih kuat untuk bahasa selain bahasa Inggris. Saat ini, saat menggunakan Azure Edge TTS default, ia sudah mendukung bahasa lain dan mencoba untuk secara otomatis dari teks tetapi kualitas mungkin bervariasi tergantung pada bahasa.
requirements.txt untuk edge-tts, persyaratan terpisah untuk f5 dan styletts2. Klon Repositori:
git clone https://github.com/WismutHansen/READ2ME.git
cd read2meBuat dan aktifkan lingkungan virtual:
python -m venv .venv
source .venv/bin/activate # On Windows: .venvScriptsactivateAtau jika Anda suka menggunakan UV untuk manajemen paket:
uv venv
source .venv/bin/activate # On Windows: .venvScriptsactivateInstal dependensi:
pip install -r requirements.txt (or uv pip install -r requirements.txt)Untuk model Text-to-Speech styletts2 lokal, harap juga instal dependensi tambahan:
pip install -r requirements_stts2.txt (or uv pip install -r requirements_stts2.txt)Untuk model F5-TTS, harap juga instal dependensi tambahan:
pip install -r requirements_F5.txt (or uv pip install -r requirements_F5.txt)Instal Playwright
playwright installJika menggunakan UV, silakan instal:
uv pip install pipUntuk dukungan Pipertts lokal:
python3 -m TTS.piper_tts.instalpipertts (MacOS and Linux) or python -m TTS.piper_tts.instalpipertts (on Windows)Catatan: FFMPEG diperlukan saat menggunakan Styletts2 atau Pipertts untuk mengubah file WAV menjadi MP3. Styletts juga mengharuskan Espeak-Ng untuk diinstal pada sistem Anda.
Mengatur variabel lingkungan:
Ganti nama .env.example file di root director ke .env dan edit konten ke preferensi Anda:
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, OpenAIAnda dapat menggunakan ollama atau API yang kompatibel dengan Openai untuk judul dan pembuatan skrip podcast (fungsi ringkasan juga akan segera hadir)
Klon Repositori dan beralih ke dalamnya:
git clone https://github.com/WismutHansen/READ2ME.git && cd read2meSalin .Env.Example to .env dan Edit konten: PENTING: Saat menggunakan engine LLM lokal Eg Ollama, URL perlu mengikuti format ini "host.docker.Internal: 11434" (untuk ollama) atau "host.docker.intternal: 1234" (untuk lmstudio) atau "host.docker.
Bangun wadah Docker
docker build -t read2me . CATATAN: Bangun waktu membutuhkan waktu lama, bersabarlah
Jalankan wadah Docker
docker run -p 7777:7777 -d read2meCATATAN: Bangun waktu membutuhkan waktu lama, bersabarlah
Salin dan ganti nama .env.example ke .env . Edit konten file ini sesuai keinginan Anda, menentukan direktori output, file tugas dan jalur gambar untuk digunakan untuk sampul file MP3 serta file kata dan kata kunci.
Jalankan aplikasi FASTAPI:
uvicorn main:app --host 0.0.0.0 --port 7777Atau, jika Anda terhubung ke server Linux misalnya melalui SSH dan ingin menjaga aplikasi tetap berjalan setelah menutup sesi Anda
nohup uvicorn main:app --host 0.0.0.0 --port 7777 & Ini akan menulis semua output CommandLine ke dalam file yang disebut nohup.out di direktori kerja Anda saat ini.
Tambahkan URL untuk diproses:
Kirim Permintaan Posting ke http://localhost:7777/v1/url/full dengan tubuh json yang berisi url:
{
"url" : " https://example.com/article "
} Anda dapat menggunakan curl atau klien API apa pun seperti tukang pos untuk mengirim permintaan ini seperti ini:
curl -X POST http://localhost:7777/v1/url/full/
-H " Content-Type: application/json "
-d ' {"url": "https://example.com/article"} '
-d ' {"tts-engine": "edge"} 'Repositori juga berisi ekstensi kromium yang berfungsi yang dapat Anda instal di browser berbasis kromium (misalnya Google Chrome) ketika pengaturan pengembang diaktifkan.
URL Memproses:
Aplikasi secara berkala memeriksa file tasks.json untuk pekerjaan baru untuk diproses. Ini mengambil konten untuk URL yang diberikan, mengekstrak teks, mengubahnya menjadi ucapan, dan menyimpan file MP3 yang dihasilkan dengan metadata yang sesuai.
Tentukan sumber dan kata kunci untuk pengambilan otomatis:
Buat file yang disebut sources.json di direktori kerja Anda saat ini dengan URL ke situs web yang ingin Anda pantau artikel baru. Anda juga dapat mengatur kata kunci global dan kata kunci per-sumber untuk digunakan sebagai filter untuk pengambilan otomatis. Jika Anda mengatur "*" untuk suatu sumber, semua artikel baru akan diambil. Berikut adalah contoh struktur:
{
"global_keywords" : [
" globalkeyword1 " ,
" globalkeyword2 "
],
"sources" : [
{
"url" : " https://example.com " ,
"keywords" : [ " keyword1 " , " keyword2 " ]
},
{
"url" : " https://example2.com " ,
"keywords" : [ " * " ]
}
]
}Lokasi kedua file dapat dikonfigurasi dalam file .env.
Untuk menggunakan frontend Next.js, pastikan Anda memiliki node.js yang diinstal pada sistem Anda. Catatan: Frontend saat ini dalam tahap eksperimental awal jadi harapkan banyak bug: pertama, beralih ke direktori frontend
cd frontendKemudian instal dependensi simpul yang diperlukan:
npm installKemudian untuk memulai menjalankan frontend:
npm run devAnda dapat mengakses frontend di http: // localhost: 3000
POST/V1/URL/FULL
Menambahkan URL ke daftar pemrosesan.
Badan Permintaan:
{
"url" : " https://example.com/article " ,
"tts-engine" : " edge "
}Tanggapan:
{
"message" : " URL added to the processing list "
}POST/V1/URL/PODCAST
POST/V1/TEXT/FULL
POST/V1/Teks/Podcast
Garpu repositori.
Buat cabang baru:
git checkout -b feature/your-feature-nameBuat perubahan Anda dan lakukan:
git commit -m ' Add some feature 'Dorong ke cabang:
git push origin feature/your-feature-nameKirimkan permintaan tarik.
Proyek ini dilisensikan di bawah Lisensi Apache versi 2.0, Januari 2004, kecuali untuk kode Styletts2, yang dilisensikan di bawah lisensi MIT. Model pra-terlatih F5-TTS ABD Styletts2 berada di bawah lisensi mereka sendiri.
Styletts2 Model pra-terlatih: Sebelum menggunakan model pra-terlatih ini, Anda setuju untuk memberi tahu para pendengar bahwa sampel ucapan disintesis oleh model pra-terlatih, kecuali jika Anda memiliki izin untuk menggunakan suara yang Anda sintesis. Artinya, Anda setuju untuk hanya menggunakan suara -suara yang pembicara memberikan izin untuk mengkloning suara mereka, baik secara langsung atau dengan lisensi sebelum membuat suara yang disintesis publik, atau Anda harus mengumumkan secara terbuka bahwa suara -suara ini disintesis jika Anda tidak memiliki izin untuk menggunakan suara -suara ini.
Saya ingin mengucapkan terima kasih kepada repositori dan penulis berikut atas inspirasi dan kode mereka: