This repository provides two options for transcribing audio using the LemonFox Whisper OpenAI API:
-
Legacy Desktop App (
legacy/folder)
For small files — a GUI app built with PyQt5 and direct API calls. -
Callback-based Flask Server (in
server/, suitable for deployment on cPanel or any WSGI server)
For large files — uses a callback endpoint so LemonFox can notify when transcription is ready. A web dashboard displays results and lets you download.txtfiles.
# 1. Create and activate a virtual environment
python -m venv myenv
source myenv/Scripts/activate # On Windows use: .\myenv\Scripts\activate
# 2. Install dependencies
pip install -r requirements.txt
# Or install manually
# Server dependencies
pip install flask jinja2 python-dotenv
# Application dependencies
pip install PyQt5 ffmpeg-python requests-toolbelt.
├── server/
│ ├── callback_server.py # Flask server logic (WSGI-compatible)
│ ├── templates/
│ │ └── dashboard.html # Jinja2 template for web UI
│ └── __init__.py # optional, for modularization
├── app.wsgi # WSGI entry point for cPanel
├── legacy/
│ └── ... # PyQt5 desktop app
├── requirements.txt
└── README.md
- Upload your audio using the desktop app or directly via API.
- LemonFox processes it asynchronously and sends a callback to:
https://yourdomain.com/callback - Your Flask server receives the callback and stores the transcription in memory.
- You can view and download the result from the web dashboard as a
.txtfile.
Create a .env file (excluded from repo) and include:
LEMONFOX_API_KEY=your-key-here
CALLBACK_URL=https://your-deployed-server-url/callbackTo deploy the Flask callback server on cPanel:
Make sure it ends with:
application = app # Required for WSGIRemove or comment out app.run(...) if present.
import sys
sys.path.insert(0, "/home/your_cpanel_user/VoiceToNote/server") # Adjust this path
from callback_server import application- Go to "Setup Python App"
- Choose a Python version (e.g., 3.11+)
- Set the Application Root to VoiceToNote/server
- Set Application Startup File to callback_server.py
- Set the Entry Point to application
- Click Create Application
- Open the terminal from cPanel and run:
pip install -r requirements.txt
- The current server uses Flask (WSGI). If you'd like to deploy with FastAPI (ASGI) instead, feel free to reach out for help with refactoring.
- Give Render access to the current github repository.
- Match up the build deployment of render with this:
services:
- type: web
name: voice-to-note-fastapi
env: python
buildCommand: pip install -r requirements.txt
startCommand: uvicorn callback_server:app --host 0.0.0.0 --port 10000
plan: free
envVars:
- key: LEMONFOX_API_KEY
value: your-api-key-here
- key: CALLBACK_URL
value: https://your-render-url/callback- The desktop app is for smaller audio files and quick tests
- The server is ideal for longer recordings via asynchronous callback
- All transcriptions are downloadable as .txt files via the dashboard
This project is licensed under the MIT License. See LICENSE for details.
