A tool that converts English song lyrics into singing-phonetic tables for vocal performance, optimized for vowel carrying, legato, and minimal consonant friction.
Perfect for barbershop quartets! 🎶
New to Fonetizer? Start here:
- 🇸🇪 Svensk guide (GUIDE_SV.md) - Komplett manual på svenska
- 🇬🇧 English guide (GUIDE_EN.md) - Complete manual in English
These guides include:
- Step-by-step instructions
- Understanding the phonetic table
- Tips for singers and quartets
- Frequently asked questions
- Technical details
Fonetizer takes English song lyrics (one phrase per line with measure markers) and generates a phonetic table where each phrase is represented by one column pair:
- Left column = consonant(s), right-aligned
- Right column = vowel, left-aligned
These two columns are always read together for singing purposes.
Requires Python 3.11+ and dependencies.
# Clone or download this repository
cd Fonetizer
# Install dependencies
pip install -r requirements.txtStreamlit Web Interface:
Run locally:
streamlit run app.pyOr deploy to Streamlit Cloud for mobile access! See DEPLOY.md for instructions.
Features:
- 🎵 Mobile-friendly interface
- ✏️ Paste and edit text directly
- 📝 Add line breaks and measure numbers
- 📥 Download formatted Excel file
- 🌐 Share with your quartet via link!
Generate formatted Excel file:
python fonetizer.py input.txt output.xlsxThis creates a fully formatted Excel file with:
- ✅ Borders around column pairs
- ✅ Right-aligned consonants
- ✅ Left-aligned, bold vowels
- ✅ Auto-adjusted column widths
Just open the .xlsx file - no manual formatting needed!
Generate CSV file:
# To file
python fonetizer.py input.txt output.csv
# To stdout
python fonetizer.py input.txt
# From stdin
cat lyrics.txt | python fonetizer.pyCSV files need manual formatting in Excel/Sheets.
Each line can contain:
With measure numbers:
N <text>
Without measure numbers:
<text>
Where:
N= starting measure number (optional, just the number, no "T" prefix)- Space after the number
<text>= the lyric phrase
Example with measure numbers:
1 There's a party tonight everyone is coming,
3 the music is high all the folks
5 enjoyin' and dancing the night away.
Example without measure numbers:
There's a party tonight everyone is coming,
the music is high all the folks
enjoyin' and dancing the night away.
Important:
- Exactly one phrase per line
- Measure numbers are optional
- If using measure numbers, only starting measure needed (no end measure)
The output is a transposed table in CSV/TSV format:
- Rows = syllable positions (1, 2, 3...)
- Columns = phrase column pairs (consonant + vowel per phrase)
Column headers show measure intervals (T1, T4, etc.)
Example structure:
Syllable T1 T4 T4 T8 T8 T10
1 aɪ j w ɛ ð ɛ
2 j uː d n ɛ n
...
Each phrase gets two columns:
- Consonant cluster (right-aligned)
- Vowel (left-aligned)
Each syllable is split as:
[CONSONANT CLUSTER] [VOWEL]
- Non-phrase-final consonants move to the next syllable
- Phrase-final consonants stay with their syllable
All diphthongs are divided into two separate rows:
[Vː | glide]
Examples:
cry→ aː (row 1) + ɪ (row 2)know→ oː (row 1) + ʊ (row 2)way→ eː (row 1) + ɪ (row 2)
The second row (glide) has an empty consonant column.
to→ alwaysuːto-in "tomorrow" →uː
✅ Fully Functional! The current version implements:
- Full IPA phonetic transcription using the
eng-to-ipalibrary - Proper diphthong splitting into two rows
- Consonant cluster handling
- English-specific pronunciation rules from a comprehensive dictionary
The tool is ready for use with English song lyrics!
Future enhancements could include:
- Fine-tuning syllable boundary detection
- Adding support for singing-specific pronunciation variants
- Handling multi-word phrases more intelligently
- Export directly to Excel with formatting (bold vowels, cell borders)
- Web interface for easier use
Input:
T1-T4: I used to be the first one to cry
Expected output (when fully implemented):
Syllable T1 T4
1 aɪ j
2 ɪ
3 j uː
4 ... ...
This is a work in progress. The phonetic rules need to be fully implemented based on the specifications in CLAUDE.md.
Open source - use freely for vocal training and music education.