Skip to content

About

Acid Reflux for your Ears!

Topics

Resources

Code of conduct

Contributing

Stars

75 stars

Watchers

1 watching

Forks

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. Install uv and Node.js
  5. Run uv sync
  6. Run uv run uvicorn main:app --app-dir app --host 127.0.0.1 --port 8000
  7. In another terminal, from frontend/, run npm install and then npm run dev

The Next.js app is at http://127.0.0.1:3000. It sends the form to the FastAPI backend on port 8000 and downloads the generated zip. Set NEXT_PUBLIC_API_URL if the API is not at http://127.0.0.1:8000, and set CORS_ORIGINS on the API to the UI origin.

⚠️ Deployment

Serve the API with uvicorn and the UI with npm run build followed by npm run start inside frontend/. Point NEXT_PUBLIC_API_URL at the public API origin, and set CORS_ORIGINS to the public UI origin.

🛠️ Built With

  • Python
  • FastAPI — API
  • Next.js — web UI
  • uv — Python package manager
  • 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

Code of conduct

Contributing

Stars

75 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages