
Read2me는 제공된 URL에서 컨텐츠를 가져오고, 텍스트를 처리하고, Microsoft Azure의 Edge TTS를 사용하여 또는 로컬 TTS 모델 F5-TTS, Styletts2 또는 Piper TTS를 사용하여 음성으로 변환하는 FastApi 응용 프로그램입니다. 전체 텍스트를 오디오로 바꾸거나 LLM이 시드 텍스트를 팟 캐스트로 변환 할 수 있습니다. 현재 Ollama와 OpenAi 호환 API가 지원됩니다. 크롬 기반 브라우저 (예 : Chrome 또는 Microsoft Edge)에 제공된 Chromium 확장을 설치하여 현재 URL 또는 텍스트를 SEEP에 보내고 자동 페치를위한 소스 및 키워드를 추가 할 수 있습니다.
이것은 현재 베타 버전이지만 향후 다른 콘텐츠 유형 (예 : 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 installUV를 사용하는 경우 설치하십시오.
uv pip install pip지역 Pipertts 지원 :
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 로 .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 엔진을 사용할 때 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 .env 로 복사하고 바꿉니다. 이 파일의 내용을 원하는대로 편집하고 MP3 파일 표지에 사용할 출력 디렉토리, 작업 파일 및 이미지 경로를 지정하고 소스 및 키워드 파일을 지정하십시오.
Fastapi 응용 프로그램 실행 :
uvicorn main:app --host 0.0.0.0 --port 7777또는 SSH를 통해 Linux 서버에 연결되어 있고 세션을 마친 후 앱을 계속 실행하려는 경우
nohup uvicorn main:app --host 0.0.0.0 --port 7777 & 이렇게하면 모든 Commandline 출력을 현재 작업 디렉토리에서 nohup.out 라는 파일에 씁니다.
처리를위한 URL 추가 :
http://localhost:7777/v1/url/full url을 포함하는 JSON 본체로 게시물 요청을 보내십시오.
{
"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"} '이 저장소에는 개발자 설정이 활성화 될 때 크롬 기반 브라우저 (예 : Google Chrome)에 설치할 수있는 작업 크롬 확장 기능도 포함되어 있습니다.
URL 처리 :
응용 프로그램은 주기적으로 tasks.json 파일을 확인하여 새로운 작업을 처리 할 수 있습니다. 주어진 URL의 내용을 가져오고 텍스트를 추출하고 연설로 변환하며 결과 메타 데이터로 결과 MP3 파일을 저장합니다.
자동 검색을 위해 소스 및 키워드를 지정하십시오.
새 기사를 모니터링하려는 웹 사이트에 대한 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가 설치되어 있는지 확인하십시오. 참고 : Frontend는 현재 초기 실험 단계에 있으므로 많은 버그를 기대하십시오. 먼저 Frontend 디렉토리로 전환하십시오.
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/Podcast
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풀 요청을 제출하십시오.
이 프로젝트는 MIT 라이센스에 따라 라이센스가 부여 된 Styletts2 코드를 제외하고 2004 년 1 월 Apache License 버전 2.0에 따라 라이센스가 부여됩니다. F5-TTS ABD Styletts2 사전 훈련 된 모델은 자체 라이센스에 따라 있습니다.
STYLETTS2 사전 훈련 된 모델 : 이러한 미리 훈련 된 모델을 사용하기 전에, 당신은 합성 된 음성을 사용할 수있는 허가가없는 한, 음성 샘플이 미리 훈련 된 모델에 의해 합성된다는 것을 알리는 데 동의합니다. 즉, 당신은 합성 된 목소리를 공개하기 전에 자신의 목소리를 직접 또는 라이센스로 복제 할 수있는 권한을 부여하는 목소리 만 사용하거나, 이러한 목소리를 사용할 수있는 권한이 없다면 이러한 목소리가 합성된다고 공개적으로 발표해야합니다.
영감과 코드에 대해 다음 리포지토리와 저자에게 감사의 말씀을 전합니다.