apnea / NewsBytes

Daily news podcasts generated by AI πŸ€–

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool



About πŸ”°

NewsBytes is an AI generated podcast that covers global headlines in roughly 5 minutes. Sourcing through ground.news, NewsBytes is able report from neutral sources only. Every 24 hours a new podcast is posted with all its content, from the podcast audio to descriptions being AI generated. Keeping up with that theme, the podcast cover seen on spotify is also AI generated. See the image below for a detailed look at the tech stack used.

Built With πŸ”§

Labels 🏷

Pylint GitHub release (latest by date)

(back to top)

Getting Started πŸ”Œ

Requirements πŸ“¦

Before starting with the project, you need to have a few requirements installed:

  • Python 3.10
  • Pip

You can install the required Python packages by running the following command:

pip install -r requirements.txt

Setting ENV Variables πŸ”‘

The project requires API keys for Google Cloud Platform & OpenAI's ChatGPT to access the necessary services. You can set up your API keys by following these steps:

  1. Go to the Google Cloud Console.
  2. Create a new project.
  3. Enable the necessary APIs for your project:
    • Cloud Text-to-Speech API
    • Cloud Storage API
  4. Download the JSON key for your service account.
OPENAI_API_KEY = OpenAI API key
OPENAI_PROMPT = OpenAI prompt to summarize news articles
OPENAI_DESCRIPTION_PROMPT = OpenAI prompt to create episode description
GOOGLE_APPLICATION_CREDENTIALS = Path to GCP credentials json
BUCKET_NAME = GCP bucket name
MODEL_URL = Download link to so-vits-svc model (.pth file)
MODEL_CONFIG = Download link to so-vits-svc model config (.json file)

(back to top)

SO-VITS-SVC Setup πŸ”©

Once the API keys are setup, you will need a model and config file corresponding to the voice you want to use for the podcast.

  • Follow this page to train your own voice model
  • Or, download pre-trained models from this page

Place the path to the download links into MODEL_URL and MODEL_CONFIG Example:

MODEL_URL = https://huggingface.co/xgdhdh/so-vits-svc-4.0/resolve/main/Saber/G_30400.pth
MODEL_CONFIG = https://huggingface.co/xgdhdh/so-vits-svc-4.0/raw/main/Saber/config.json

(back to top)

Potential Improvements βš™οΈ

  • Tweak TTS naturalization
    • Current version may encounter voice cracks
    • See NewsByte: 003
  • Include news from subtopics (Finance, Sports etc.)
  • Improve web scrapping model
    • Current version drops certain news articles if news can not be extracted via BoilerPy3
  • Have so-vits-svc downloaded during runtime, rather than storing 500MB+ model locally
  • Ensure two consecutive podcasts do not repeat news
    • See NewsByte: 005 and NewsByte: 006

(back to top)

Contributing πŸ“„

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License πŸ”’

Distributed under the Apache-2.0 license. See LICENSE for more information.

(back to top)

Contact πŸ“ž

Gmail Linkedin

(back to top)

About

Daily news podcasts generated by AI πŸ€–

License:Apache License 2.0


Languages

Language:Python 100.0%