ZeroVoice is a real-time speech-to-speech communication application built with modern web technologies. It allows users to interact with an AI voice assistant through natural language, featuring voice activity detection, speech-to-text transcription, large language model integration for responses, and text-to-speech synthesis.
src/App.jsx: The main React component, handling UI, audio stream management, and state logic.src/worker.js: A Web Worker responsible for handling speech processing (VAD, ASR, LLM, TTS) to offload heavy computations from the main thread.src/constants.js: Defines various constants used across the application, especially for audio processing parameters.src/play-worklet.js: AudioWorklet for managing audio playback buffering.src/vad-processor.js: AudioWorklet for Voice Activity Detection processing.public/: Static assets like logo.png.To get the project up and running on your local machine, follow these steps:
Clone the repository:
git clone https://github.com/your-repo/zerovoice.git # Replace with actual repo URL if available
cd zerovoice
Install dependencies:
npm install
Start the development server:
npm run dev
This will typically start the application on http://localhost:5173 (or another available port).
Open in your browser: Navigate to the URL provided by Vite in your web browser.
Demo: You can try out a live demo here: https://biswatma.github.io/zerovoice/
To use LM Studio for more powerful language models:
Install LM Studio: Download and install LM Studio on your local machine.
Load a Model: In LM Studio, download and load any compatible language model (e.g., Llama, Mistral, etc.).
Start the Server: In LM Studio, go to the "Local Server" tab and start the server on the default port (1234).
Configure ZeroVoice:
Start Conversation: Begin your conversation as usual. The application will now use your local LM Studio model for generating responses.
Note: LM Studio must be running and serving a model for the integration to work. If LM Studio is not available, the application will fall back to the browser-based model.
This project uses ESLint for code quality and consistency. You can run the linter using:
npm run lint
7 commits
JavaScript
98.4%
HTML
1.1%
ZeroVoice is a real-time speech-to-speech communication application built with modern web technologies. It allows users to interact with an AI voice assistant through natural language, featuring voice activity detection, speech-to-text transcription, large language model integration for responses, and text-to-speech synthesis.
src/App.jsx: The main React component, handling UI, audio stream management, and state logic.src/worker.js: A Web Worker responsible for handling speech processing (VAD, ASR, LLM, TTS) to offload heavy computations from the main thread.src/constants.js: Defines various constants used across the application, especially for audio processing parameters.src/play-worklet.js: AudioWorklet for managing audio playback buffering.src/vad-processor.js: AudioWorklet for Voice Activity Detection processing.public/: Static assets like logo.png.To get the project up and running on your local machine, follow these steps:
Clone the repository:
git clone https://github.com/your-repo/zerovoice.git # Replace with actual repo URL if available
cd zerovoice
Install dependencies:
npm install
Start the development server:
npm run dev
This will typically start the application on http://localhost:5173 (or another available port).
Open in your browser: Navigate to the URL provided by Vite in your web browser.
Demo: You can try out a live demo here: https://biswatma.github.io/zerovoice/
To use LM Studio for more powerful language models:
Install LM Studio: Download and install LM Studio on your local machine.
Load a Model: In LM Studio, download and load any compatible language model (e.g., Llama, Mistral, etc.).
Start the Server: In LM Studio, go to the "Local Server" tab and start the server on the default port (1234).
Configure ZeroVoice:
Start Conversation: Begin your conversation as usual. The application will now use your local LM Studio model for generating responses.
Note: LM Studio must be running and serving a model for the integration to work. If LM Studio is not available, the application will fall back to the browser-based model.
This project uses ESLint for code quality and consistency. You can run the linter using:
npm run lint
7 commits
JavaScript
98.4%
HTML
1.1%