Skip to content

rajtilakjee/keepyourmouthshut

Repository files navigation

KeepYourMouthShut - Acid Reflux for your Ears!

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"

About

Acid Reflux for your Ears!

Topics

Resources

License

Code of conduct

Contributing

Stars

74 stars

Watchers

2 watching

Forks

Sponsor this project

 

Packages

 
 
 

Contributors