Jyu é uma assistente de voz em português que escuta o usuário pelo microfone, entende a fala, gera uma resposta com IA e responde por voz em tempo real.
O projeto integra reconhecimento de fala, modelo de linguagem e síntese de voz, funcionando localmente no Linux.
Kooha-2025-12-22-17-58-27.mp4
- 🎧 Reconhecimento de voz em português (Vosk)
- 💬 Geração de respostas via Gemini API
- 🔊 Síntese de voz offline com Kokoro ONNX
- 🧠 Personalidade definida via system prompt
- ⚡ Respostas em tempo real
- 🐧 Focado em Linux (testado em Kubuntu - KDE NEON)
Jyu/
├── Chat/
│ └── gemini_chat_personalizado.py
├── Recognition/
│ └── reconhecimento.py
├── TTS/
│ └── fala.py
├── Models/
│ └── vosk-model-pt-*
├── voices-v1.0.bin
├── kokoro-v1.0.onnx
├── main.py
├── requirements.txt
└── README.md
- Python 3.12
- Vosk — reconhecimento de fala offline
- sounddevice — captura de áudio
- samplerate — reamostragem de áudio
- Google Gemini API — geração de texto
- Kokoro ONNX — síntese de voz
- pygame — reprodução de áudio
- NumPy
python -m venv .venv
source .venv/bin/activatepip install -r requirements.txt##🔧 Configurações Importantes
Caminho para o Modelo Vosk: Ao configurar o ambiente, crie uma pasta dentro do projeto chamada "Models" e extraia o modelo de reconhecimento do Vosk que você baixou em https://alphacephei.com/vosk/models
ID do microfone
É indispensável definir o ID do seu microphone manualmente, execute o arquivo /verificação.py para visualizar informações importantes sobre dispositivos conectados em sua maquina!
Você pode testar o funcionamento do seu microfone desejado com o arquivo /gravação.py, lembre-se que a tecla para interromper o processo é "ctrl + c"! se o audio for gravado com sucesso, seu microfone está sendo reconhecido pelo Pyaudio e pode ser utilizado.
Uma vez identificado e testado, você pode definir manualmente o ID do seu microfone em Recognition /reconhecimento.py no módulo # Configurações do PyAudio a partir da linha 27, na variável "device=" dessa forma:
Ainda sobre o microfone lembre-se, ter um microfone de qualidade é fundamental para o funcionamendo do programa, diferente de outros Sistemas de reconhecimento que utilizam APIs do Google, Amazon, IBM, etc, o vosk é totalmente Offline, logo não possui uma precisão muito boa!
Sensibilidade do microfone se o seu microfone não possuir um filtro de ruido evite ficar perto de ambientes barulhentos e longe do ventilador, isso certamente vai atrapalhar o reconhecimento da sua voz! pelos meus testes recomendo ajustar a sensibilidade do microfone para 20~35% para isolar o ruido ambiente, claro que isso vai depender de cada microfone, então terá de fazer seus próprios testes!
é de grande importancia que voce baixe os arquivos necessarios do banco de vozes em https://huggingface.co/hexgrad/Kokoro-82M/blob/main/VOICES.md e salve-os em /TTS em seguida em TTS/fala.py na linha 31 especifique o idioma do banco de voz baixado (ex: _G2P = EspeakG2P(language="pt-br") , posteriormente na linha 54, especifique o ID do banco de voz baixado (ex: "def fala(texto: str, voz="jf_tebukuro")") sem essas configurações o modelo de sintese de voz não irá funcionar!
No arquivo:
Chat/gemini_chat_personalizado.py
Configure sua chave da Gemini API:
API_KEY = "SUA_API_KEY_AQUI"
⚠️ Atenção: essa chave dá acesso à sua cota da API.
python main.pySaída esperada:
🎧 Jyu está ouvindo... (Ctrl+C para sair)
Você: olá jyu
Jyu: Oi, meu bem! 🥰 Como posso te ajudar hoje?
- Fale normalmente após o aviso de escuta
- Ctrl + C → encerra o programa com segurança
-
O uso da Gemini API gratuita possui limite de requisições
-
Erros
429ou503indicam:- cota excedida
- modelo temporariamente indisponível
-
O reconhecimento de voz depende da qualidade do microfone
-
O projeto foi pensado para uso local, não servidor
--
Projeto desenvolvido por Rivaille_VD Assistente: Jyu
“Olá, eu sou a Jyu, sua assistente virtual desenvolvida para te ajudar no que for preciso 💜”