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.
- π€ Multiple Voice Options - Choose from 6 different professional voices
- π 3 Quality Models - Economy, Standard, and Premium TTS models
- β‘ Speed Control - Adjust playback speed from 0.25x to 4.0x
- π Cost Estimation - Real-time cost calculator for informed decisions
- π History Tracking - View, play, and manage all generated audio files
- πΎ Multiple Formats - Support for MP3, Opus, AAC, FLAC, WAV, PCM
- π― Character Counter - Live character/word count and duration estimation
- π Easy Deployment - One-click deployment to Streamlit Cloud
- Professional Audio - Convert CVs and resumes to audio
- Interview Prep - Practice with audio versions of common interview questions
- Study Materials - Listen to notes, textbooks, and study guides
- Language Learning - Hear correct pronunciation of foreign language texts
- Accessibility - Create audio versions of written content
- Content Creation - Generate voiceovers for presentations and videos
- Python 3.8 or higher
- OpenAI API key (Get one here)
- Clone the repository
git clone https://github.com/yourusername/CVAudioStudio.git
cd CVAudioStudio- Install dependencies
pip install -r requirements.txt- Set up your API key
cp .env.example .env
# Edit .env and add your OpenAI API key- Run the application
streamlit run streamlit_app.py- Open your browser
Navigate to
http://localhost:8501
- Enter your text - Paste your CV, study material, or any text (up to 5000 characters)
- Choose a voice - Select from 6 professional voice options
- Select model - Economy (cheapest), Standard, or Premium (best quality)
- Adjust speed - Control playback speed (0.25x - 4.0x)
- Generate - Click "Generate Audio" and wait a few seconds
- Download - Play in browser or download the audio file
- Click "π View History" in the sidebar
- See all previously generated audio files
- Play, download, or delete files
- Search and sort by date or size
CVAudioStudio 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:
- Typical CV (500 chars): ~$0.01 (Economy model)
- Study notes (2000 chars): ~$0.03 (Economy model)
- Interview prep (1000 chars): ~$0.02 (Economy model)
| 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
- Push code to GitHub
git add .
git commit -m "Initial commit"
git push origin main- Deploy to Streamlit Cloud
- Go to share.streamlit.io
- Click "New app"
- Connect your GitHub repository
- Select
streamlit_app.py - Add your OpenAI API key in "Secrets"
- Deploy!
Your 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.logEdit config/openai_voices.py to add custom voice configurations.
Modify utils/audio_generator.py to add new model options.
- Quick Start Guide - Get running in 5 minutes
- Deployment Guide - Complete deployment instructions
- Deployment Comparison - FastAPI vs Streamlit
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=5000Edit .streamlit/config.toml to customize:
[theme]
primaryColor = "#1f77b4"
backgroundColor = "#ffffff"
[client]
showErrorDetails = false
[logger]
level = "info""OpenAI API key not found"
- Ensure
.envfile exists with your API key - Restart the application after adding the key
"Error generating audio"
- Check your OpenAI API key is valid
- Verify you have sufficient API credits
- Check the logs in
logs/app.log
Audio not playing
- Try a different browser
- Check browser console for errors
- Ensure audio format is supported
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For issues, questions, or suggestions:
- Open an issue on GitHub
- Email: your.email@example.com
- Twitter: @yourusername
If you find this project useful, please consider:
- β Starring it on GitHub
- π¦ Sharing it on Twitter
- π¬ Telling your friends and colleagues
Built with β€οΈ using Streamlit and OpenAI TTS API