A professional, web-based text-to-speech converter powered by OpenAI's TTS API.
A professional, web-based text-to-speech converter powered by OpenAIβs TTS API. Perfect for creating audio versions of CVs, interview preparation materials, study notes, and practice questions.
git clone https://github.com/yourusername/CVAudioStudio.git
cd CVAudioStudio
pip install -r requirements.txt
cp .env.example .env
# Edit .env and add your OpenAI API key
streamlit run streamlit_app.py
http://localhost:8501CVAudioStudio uses OpenAIβs TTS API with transparent pricing:
| Model | Price | Quality | Best For |
|---|---|---|---|
| gpt-4o-mini-tts | $5.00/1M chars | High | Most use cases |
| tts-1 | $15.00/1M chars | Standard | Professional audio |
| tts-1-hd | $30.00/1M chars | Premium | Best quality |
Example costs:
| Voice | Gender | Accent | Description |
|---|---|---|---|
| alloy | Neutral | American | Clear and articulate |
| echo | Male | American | Deep and authoritative |
| fable | Male | British | Warm and engaging |
| onyx | Male | American | Confident and professional |
| nova | Female | American | Friendly and clear |
| shimmer | Female | American | Expressive and warm |
CVAudioStudio/
βββ streamlit_app.py # Main application
βββ pages/
β βββ 1_π_History.py # History page
βββ utils/
β βββ audio_generator.py # TTS generation logic
βββ config/
β βββ openai_voices.py # Voice configurations
β βββ voices.py # Voice metadata
βββ audio/ # Generated audio files
βββ text/ # Sample text files
βββ logs/ # Application logs
βββ requirements.txt # Python dependencies
βββ .env.example # Environment variables template
βββ README.md # This file
βββ QUICKSTART.md # 5-minute setup guide
βββ DEPLOYMENT.md # Deployment instructions
βββ DEPLOYMENT_COMPARISON.md # FastAPI vs Streamlit comparison
git add .
git commit -m "Initial commit"
git push origin main
streamlit_app.pyYour app will be live at: https://cvaudiostudio.streamlit.app
For detailed deployment instructions, see DEPLOYMENT.md.
# Install development dependencies
pip install -r requirements.txt
# Run with auto-reload
streamlit run streamlit_app.py --server.runOnSave true
# View logs
tail -f logs/app.log
Edit config/openai_voices.py to add custom voice configurations.
Modify utils/audio_generator.py to add new model options.
Create a .env file:
# Required
OPENAI_API_KEY=your_api_key_here
# Optional
OPENAI_ORG_ID=your_organization_id
LOG_LEVEL=INFO
MAX_TEXT_LENGTH=5000
Edit .streamlit/config.toml to customize:
[theme]
primaryColor = "#1f77b4"
backgroundColor = "#ffffff"
[client]
showErrorDetails = false
[logger]
level = "info"
βOpenAI API key not foundβ
.env file exists with your API keyβError generating audioβ
logs/app.logAudio not playing
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)This project is licensed under the MIT License - see the LICENSE file for details.
For issues, questions, or suggestions:
If you find this project useful, please consider:
Built with β€οΈ using Streamlit and OpenAI TTS API