
Read2me-это приложение FastAPI, которое получает контент из предоставленных URL-адресов, обрабатывает текст, преобразует его в речь, используя TTS Microsoft Azure или с локальными моделями TTS F5-TTS, Styletts2 или Piper TTS и течет полученных файлов MP3 с метадатами. Вы можете либо превратить полный текст в аудио, либо попросить LLM преобразовать семенный текст в подкаст. В настоящее время поддерживается Ollama и любой API, совместимый с OpenAI. Вы можете установить предоставленное расширение хрома в любом браузере на основе хрома (например, Chrome или Microsoft Edge) для отправки текущих URL-адресов или любого текста в SEAV, добавить источники и ключевые слова для автоматического извлечения.
Это в настоящее время бета -версия, но я планирую расширить ее на поддержку других типов контента (например, EPUB) в будущем и обеспечить более надежную поддержку для языков, отличных от английского. В настоящее время при использовании TTS Azure Edge по умолчанию он уже поддерживает другие языки и пытается автоматически его из текста, но качество может варьироваться в зависимости от языка.
requirements.txt для Edge-TTS, отдельные требования для F5 и Styletts2. Клонировать репозиторий:
git clone https://github.com/WismutHansen/READ2ME.git
cd read2meСоздать и активировать виртуальную среду:
python -m venv .venv
source .venv/bin/activate # On Windows: .venvScriptsactivateИли, если вам нравится использовать УФ для управления пакетами:
uv venv
source .venv/bin/activate # On Windows: .venvScriptsactivateУстановить зависимости:
pip install -r requirements.txt (or uv pip install -r requirements.txt)Для модели Local 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 installПри использовании ультрафиолета, пожалуйста, также установите:
uv pip install pipДля местной поддержки Пиперта:
python3 -m TTS.piper_tts.instalpipertts (MacOS and Linux) or python -m TTS.piper_tts.instalpipertts (on Windows)Примечание. FFMPEG требуется при использовании Styletts2 или Pipertts для преобразования файлов WAV в mp3. Styletts также требует, чтобы Espeak-NG был установлен в вашей системе.
Настройка переменных среды:
Переименовать файл .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, либо любой API, совместимый с OpenAI для генерации титула и сценариев подкаста (также скоро появится функция))
Клонировать репозиторий и переключиться на него:
git clone https://github.com/WismutHansen/READ2ME.git && cd read2meСкопируйте .env.example to .env и отредактируйте содержимое: Важно: при использовании локального LLM-двигателя, например, Ollama, URL должен следовать этому формату «Host.docker.internal: 11434» (для Ollama) или «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Или, если вы подключены к серверу Linux, например, через SSH и хотите сохранить приложение после закрытия сеанса
nohup uvicorn main:app --host 0.0.0.0 --port 7777 & Это напишет все выходные выводы в файл с именем nohup.out в вашем текущем рабочем каталоге.
Добавьте URL -адреса для обработки:
Отправить запрос сообщения по адресу http://localhost:7777/v1/url/full с корпусом JSON, содержащим URL:
{
"url" : " https://example.com/article "
} Вы можете использовать curl или любого клиента 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"} 'Репозиторий также содержит работающее расширение хрома, которое вы можете установить в любом браузере на основе хрома (например, Google Chrome), когда настройки разработчика включены.
Обработки URL:
Приложение периодически проверяет файл tasks.json на новые задания для обработки. Он получает контент для данного URL, извлекает текст, преобразует его в речь и сохраняет полученные файлы MP3 с соответствующими метаданными.
Укажите источники и ключевые слова для автоматического поиска:
Создайте файл с названием sources.json в вашем текущем рабочем каталоге с URL -адресами на сайты, которые вы хотите отслеживать для новых статей. Вы также можете установить глобальные ключевые слова и ключевые слова для каждого источника, которые будут использоваться в качестве фильтров для автоматического поиска. Если вы установите «*» для источника, все новые статьи будут извлечены. Вот пример структура:
{
"global_keywords" : [
" globalkeyword1 " ,
" globalkeyword2 "
],
"sources" : [
{
"url" : " https://example.com " ,
"keywords" : [ " keyword1 " , " keyword2 " ]
},
{
"url" : " https://example2.com " ,
"keywords" : [ " * " ]
}
]
}Расположение обоих файлов настраивается в .env file.
Чтобы использовать Frontend Next.js, убедитесь, что в вашей системе установлен Node.js. Примечание: Frontend в настоящее время находится на ранней стадии эксперимента, так что ожидайте множества ошибок: во -первых, переключиться в каталог Frontend
cd frontendЗатем установите требуемые зависимости узла:
npm installЗатем, чтобы начать запуск Frontend:
npm run devВы можете получить доступ к Frontend на http: // 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
Post/v1/text/podcast
Вилка репозитория.
Создайте новую ветку:
git checkout -b feature/your-feature-nameВнесите свои изменения и совершите их:
git commit -m ' Add some feature 'Толкайте к ветке:
git push origin feature/your-feature-nameОтправьте запрос на вытяжение.
Этот проект лицензирован в соответствии с лицензией Apache, версия 2.0, январь 2004 года, за исключением кода Styletts2, который лицензирован по лицензии MIT. Предварительно обученные модели F5-TTS ABD Styletts2 находятся под собственной лицензией.
Предварительно обученные модели Styletts2: Перед использованием этих предварительно обученных моделей вы соглашаетесь сообщить слушателям, что речевые образцы синтезируются предварительно обученными моделями, если у вас нет разрешения использовать голос, который вы синтезируете. То есть вы соглашаетесь использовать только голоса, ораторы которых предоставляют разрешение на клонировать свой голос, либо напрямую, либо по лицензии, прежде чем публиковать синтезированные голоса, или вы должны публично объявить, что эти голоса синтезируются, если у вас нет разрешения на использование этих голосов.
Я хотел бы поблагодарить следующие репозитории и авторов за их вдохновение и код: