[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.
- 🚀 Installation
⚠️ Deployment- 🛠️ Built With
- 🎸 Music
- 🚸 Contributing
- 🪫 Versioning
- 🏅 Acknowledgement
- 🕹️ License
- 📟 Citation
For local installation, clone the repository and run the following commands:
- Install FFMPEG
- Create a free account on llmOS and get an API key
- Insert the API key in the
.envfile. A sample.envfile is given. - Run
pip install -r app/requirements.txt - 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.
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.
- 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
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).
- Whistle Vibes - Music by Sergio Prosvirini from Pixabay
- Scandinavianz Thessaloniki - Music by Oliver Moilanen from Pixabay
- Lofi Chill (medium version) - Music by Bohdan Kuzmin from Pixabay
- Bolero - Music by Oleksii Kaplunskyi from Pixabay
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Adam Tal - https://github.com/AdmTal
- rany2 - https://github.com/rany2
This project is licensed under the GPL-3.0 license, see the LICENSE.md file for details
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"
