GitHub - rajtilakjee/keepyourmouthshut: Acid Reflux for your Ears!

GitHub

3 min read Original article ↗

GitHub release (with filter)   GitHub License   GitHub Repo stars   GitHub forks   GitHub repo size

[Please consider sponsoring this project to help keep it alive!]

KeepYourMouthShut is an AI-assisted open-source app that provides a 360-degree podcast solution đŸŽ™ī¸ It has a developer-first approach for creating entire episodes of podcasts without requiring any expensive equpment or setup. The app takes a number of input from the end-user and based on that generates a script and an audio voice-over file based on that script.

KeepYourMouthShut App

Table of Content

🚀 Installation

For local installation, clone the repository and run the following commands:

  1. Install FFMPEG
  2. Create a free account on llmOS and get an API key
  3. Insert the API key in the .env file. A sample .env file is given.
  4. Run pip install -r app/requirements.txt
  5. Run flask --app app/keepyourmouthshut.py run

This will start the Flask app on port 5000 within a development environment. You can view the app in your browser at http://127.0.0.1:5000.

âš ī¸ Deployment

This app can be deployed on AWS. The following official tutorial from AWS will show you how to serve a Flask app on AWS:

https://aws.amazon.com/tutorials/serve-a-flask-app/

If you want to deploy this app on AWS Lambda as a Serverless function, you can use Zappa.

đŸ› ī¸ Built With

  • Python
  • llmOS — default LLM (Mistral-7B)
  • edge-tts — default TTS (en-GB-SoniaNeural)
  • 60db — optional drop-in peer for TTS + LLM + STT (this fork)
  • Pixabay — royalty-free background music

60db provider (alongside edge_tts + llmOS)

This fork adds 60db as a peer provider for the same two services KYMS already uses. One SIXTYDB_API_KEY covers all three concerns; each switch is independent so you can mix providers:

Concern File Env switch 60db endpoint
TTS app/utils/sixtydb_tts_stuff.py TTS_PROVIDER=sixtydb POST /tts-synthesize (default), POST /tts-stream, or wss://api.60db.ai/ws/tts
LLM app/utils/sixtydb_llm_stuff.py LLM_PROVIDER=sixtydb POST /v1/chat/completions
STT app/utils/sixtydb_stt_stuff.py utility (no auto-consumer in pipeline) POST /stt

Default behaviour is unchanged — both edge_tts and llmOS keep working without any .env edits. Flip the switches when you want 60db.

Pick the TTS transport surface via SIXTYDB_TTS_TRANSPORT=sync|stream|ws (default sync; ws requires the optional websockets package).

🎸 Music

🚸 Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

đŸĒĢ Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

🏅 Acknowledgement

  1. Adam Tal - https://github.com/AdmTal
  2. rany2 - https://github.com/rany2

đŸ•šī¸ License

This project is licensed under the GPL-3.0 license, see the LICENSE.md file for details

Star History

Star History Chart

📟 Citation

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Bhattacharjee"
  given-names: "Rajtilak"
  orcid: "https://orcid.org/0009-0008-2465-0266"
title: "keepyourmouthshut"
version: 0.0.1
doi: 10.5281/zenodo.10199470
date-released: 2023-11-23
url: "https://github.com/rajtilakjee/keepyourmouthshut"