Live App: voice-at-sangeetham.streamlit.app
Sangeetham (Sanskrit for music/singing) is an AI-powered tool designed to bridge the gap between vocal capability and song selection. By analyzing the unique characteristics of a user's singing voice, the app provides data-driven song recommendations tailored to their specific vocal range and stability.
- Precision Pitch Tracking: Utilizes the
librosa.pyin(Probabilistic YIN) algorithm for robust fundamental frequency estimation. - Vocal Range Profiling: Automatically calculates the user's effective range using 5th and 95th percentile filtering to ensure outliers (background noise or vocal cracks) don't skew results.
- Stability Analysis: Measures pitch variance to assess vocal steadiness during sustained notes.
- Smart Match Engine: Ranks songs from a curated database based on how well their required tessitura overlaps with the user's comfortable singing zone.
- Interactive UI: Built with Streamlit for a seamless, browser-based experience.
- Language: Python 3.9+
- Audio Processing: Librosa, NumPy, SciPy
- Web Framework: Streamlit
- Data Handling: Pandas
- Input: The user uploads a recording of their singing (scales or a song snippet).
-
Extraction: The system cleans the audio and extracts the pitch (
$f_0$ ) contour. - Analysis: The app identifies the lowest and highest stable notes to define the "Vocal Footprint."
- Recommendation: The engine compares this footprint against the frequency requirements of various songs to find the highest compatibility score.
To run Sangeetham on your local machine, follow these steps:
# 1. Clone the repository
git clone [https://github.com/swahathi/sangeetham.git](https://github.com/swahathi/sangeetham.git)
cd sangeetham
# 2. Install dependencies
pip install -r requirements.txt
# 3. Launch the Streamlit app
streamlit run app/app.py