Inspiration
The inspiration behind Soniq came from a simple question: how can we better understand the way we speak?
Communication is important in interviews, presentations, public speaking, and everyday conversations. However, listening to a recording of yourself does not always make it easy to identify patterns in your voice.
I wanted to explore how audio analysis could make these patterns more visible and understandable. This led me to build Soniq, a speech analytics project that examines measurable characteristics of audio and presents them through a visual interface.
My goal was to bring together acoustic analysis and interactive speech practice in one application, making speech data easier to explore.
What it does
Soniq allows users to explore speech recordings through acoustic measurements and visual representations.
Its implemented analysis pipeline includes:
- Pitch estimation: Examines variations in the fundamental frequency of the voice.
- Energy analysis: Uses Root Mean Square (RMS) measurements to examine changes in audio intensity.
- Pause and voice activity analysis: Identifies speech activity and quieter intervals.
- Cadence estimation: Uses available speech and transcript information to estimate speaking rhythm.
- Visual analysis: Presents available measurements and results through charts and timelines.
- Voice Flow: An interactive, game-like feature that incorporates speech-related signals such as pitch, energy, pauses, and cadence.
The project also includes a FastAPI backend, SQLite-based data storage, and an integration with faster-whisper for speech recognition when a transcript is not supplied.
The current acoustic indicators use implemented algorithms and heuristics. They are intended for exploration and self-reflection, rather than validated pronunciation scoring or definitive assessments of speaking ability.
How I built it
I developed Soniq as a web application using React, TypeScript, and Vite for the frontend.
For audio processing, I used browser-based audio capabilities to decode recordings and extract acoustic measurements. The analysis pipeline includes autocorrelation-based pitch estimation, RMS energy calculation, voice activity analysis, pause detection, and cadence-related calculations.
I built the backend using Python and FastAPI, with SQLite supporting application data such as account information, settings, and report metadata. The project also includes faster-whisper integration for generating transcripts when the required local speech-recognition model is available.
I developed the interface to bring these components together, with dedicated areas for speech analysis, results, and the Voice Flow experience.
Building Soniq involved working across frontend development, audio processing, backend integration, data handling, and interactive feature design.
Challenges I ran into
One of my biggest challenges was getting the different parts of the application to work together reliably.
Audio analysis is not as simple as displaying a few numbers. Measurements such as pitch, energy, pauses, and cadence require different processing approaches, and their results can vary depending on the recording quality and the audio itself.
Another challenge was distinguishing between implemented functionality and features that still needed validation. For example, acoustic measurements should not automatically be treated as proof of pronunciation accuracy or communication proficiency.
I also encountered development and integration issues involving dependencies, application startup, and the connection between the frontend and backend. Testing revealed that having the interface available did not necessarily mean every backend workflow was functioning correctly.
Working through these issues taught me the importance of testing complete user workflows instead of relying only on a successful build or an attractive interface.
Accomplishments I'm proud of
I am proud of bringing together several different technical concepts in a single project.
- I implemented an acoustic analysis pipeline that examines multiple characteristics of speech.
- I created a visual interface for exploring speech-related measurements.
- I developed the concept of Voice Flow to connect speech signals with an interactive game experience.
- I integrated a React frontend with a Python-based backend and SQLite data storage.
- I explored how local speech recognition could complement browser-based audio analysis.
Most importantly, I took an idea beyond its initial concept and developed a working project structure that helped me understand the practical complexity of speech analytics.
What I learned
Building Soniq taught me that developing an AI-related application involves much more than choosing a model or building a user interface.
I learned about audio signals, pitch estimation, RMS energy, voice activity detection, pauses, and the challenges of deriving meaningful information from speech.
I also gained practical experience with React, TypeScript, FastAPI, SQLite, and integrating frontend and backend components.
One of my biggest takeaways was the importance of being honest about what a system can actually measure. A heuristic score is not the same as a validated assessment, and an integrated model is not the same as a fully tested workflow.
This project helped me better understand the difference between implementing a feature, verifying that it works, and demonstrating that it produces reliable results.
What's next for Soniq
My next goal is to improve the reliability of the complete analysis workflow, from audio input to saved results.
I would like to strengthen backend integration, test speech recognition across different recordings, improve the robustness of acoustic measurements, and make Voice Flow respond more consistently to real audio input.
I also want to investigate better methods for aligning transcripts with speech and evaluating the usefulness of the generated measurements.
In the longer term, I hope to explore validated feedback methods that could help users understand their speaking patterns more effectively, while keeping the limitations of automated speech analysis clear.
Soniq is my starting point for exploring how audio processing and interactive experiences can make speech analysis more accessible.
Built With
- audio-processing
- css3
- html5
- javascript
- react
- signal-processing
- speech-analytics
- sqlite
- tailwind-css
- typescript
- vite
- web-audio-api
Log in or sign up for Devpost to join the conversation.