NovaVoice is an AI voice assistant. Currently very early in development, contributions welcome!
demo.mp4
- 🎤 Wake Word Detection (Porcupine or Azure Speech)
- 🗣️ Speech-to-Text (Built-in using WebRtcVad and Whisper Turbo or Cheetah)
- 🔊 Text-to-Speech (Windows Speech or Mimic3)
- 🤖 AI Interactions (via Groq API)
- 🔍 Extensible Tool System (Google Search API, YouTube Data API, AccuWeather API)
- 📝 Conversation History
- 🎵 Media Playback Support
- 🔄 Configurable Audio Processing Pipeline
- .NET 8.0 SDK
- Required external dependencies:
Configure the assistant through environment variables or appsettings.json:
{
"Recorder": "Picovoice",
"WakeWordProvider": "Porcupine",
"SpeechToTextProvider": "Cheetah",
"TextToSpeechProvider": "WindowsSpeech",
"Google": {
"ApiKey": "YOUR_KEY",
"CustomSearchId": "YOUR_ID"
},
"AccuWeather": {
"ApiKey": "YOUR_KEY"
},
"Groq": {
"ApiKey": "YOUR_KEY",
"WhisperModel": "whisper-large-v3-turbo",
"GeneralModel": "llama-3.1-70b-versatile",
"ToolUseModel": "llama3-groq-70b-8192-tool-use-preview",
"SystemPrompt": "You are a helpful, child-friendly voice assistant called Nova. Respond concisely to user prompts (received via Automatic Speech Recognition). You have access to the following tools: `google_search`, `youtube_search`, and `check_weather`. Consider carefully when you should use them.\n\n- Use `youtube_search` to find music and audio content that the user may want to listen to.\n- Use `check_weather` to get the current weather conditions or forecasts for a location.\n- Use `google_search` for retrieving live data, for example news or exchange rates\n\nPrioritise safety and well-being, never provide responses that could be harmful, inappropriate, biased, or misleading. If the prompt is ambiguous, unsafe, or you are unable to provide a helpful response using the available tools, respond with \"Sorry, I can't help with that\"."
},
"Picovoice": {
"AccessKey": "YOUR_KEY",
"Porcupine": {
"Keywords": ["Hey Nova", "OK Stop"]
}
}
}Speech/- Core speech processing componentsRecorder/- Audio input handlingSpeechToText/- Speech recognition implementationsTextToSpeech/- Speech synthesis implementationsWakeWord/- Wake word detection providers
Tools/- Extensible tool system implementationsModels/- Data models and configuration classesEvents/- Event handling system
- Clone the repository
- Configure your API keys in
appsettings.jsonor environment variables - Install required external dependencies
- Build and run the project:
dotnet build
dotnet run- Porcupine
- Azure Speech
- Built-in (crude implementation using WebRtcVadSharp and Whisper Turbo)
- Cheetah
- Windows Speech
- Mimic3
- NAudio
- Picovoice
The assistant includes several built-in tools:
google_search- Web search functionalityyoutube_search- YouTube content search and playbackcheck_weather- Weather information retrieval
- Thanks to UNIVERSFIELD for the sound effects.