AI-Chatbox ist ein Sprachinteraktionsprojekt, das auf dem ESP32S3 Entwicklungsboard basiert. BenutzerInnen sprechen mit dem Large Model (LLM) per Stimme, und das Gerät wandelt die Stimme in Text um und sendet ihn an das Large Model, der nach Erhalt der Antwort weiter in eine Sprachübertragung umgewandelt werden kann. Das Projekt wurde in der Sprache Rust entwickelt und in das Spracherkennungsprogramm Vosk integriert, das für Menschen geeignet ist, die nicht in der Lage sind, Mobiltelefonanwendungen zu nutzen, wie z. B. Kinder, ältere oder sehbehinderte Menschen. Die Hardware basiert auf XIAO ESP32S3 Sense, kombiniert mit Sprachcodierungshardware, und die Software wird auf GitHub über Open Source Code gehostet. Das Projekt zielt darauf ab, eine bequeme Sprachinteraktionserfahrung zu bieten, die für Embedded-Entwicklungsenthusiasten und Smart-Hardware-Entwickler geeignet ist.
Funktionsliste
- Aufwachen mit Sprach- und Befehlserkennung Unterstützt Aufnahmen, die durch das Weckwort "Hallo, Lexin" und das Befehlswort "Ich habe eine Frage" ausgelöst werden.
- Sprache-zu-Text Konvertieren Sie aufgezeichnete WAV-Audiodateien in Text mit dem Vosk-Tool, das die chinesische Erkennung unterstützt.
- Große Modellinteraktion : durch DeepSeek API Senden Sie eine Textfrage und erhalten Sie eine intelligente Antwort.
- Protokollierung Unterstützt die Anzeige von Protokollen in Echtzeit zur einfachen Fehlersuche und Überwachung des Gerätestatus.
- geräteübergreifender Zugriff Erstellen eines REST-Dienstes über Flask, der es anderen Geräten im LAN ermöglicht, die Sprache-zu-Text-Funktion aufzurufen.
- Eingebettete Optimierung Rust-Code ist für eingebettete Geräte optimiert, mit maximal 512 generierten Token, wodurch Leistung und Ressourcen ausgeglichen werden.
Hilfe verwenden
Installation und Konfiguration
- Vorbereitung Hardware
Erfordert ein XIAO ESP32S3 Sense Entwicklungsboard mit Mikrofon und Sprachcodierung. Externe Sprachkodierungshardware kann die Audioverarbeitung verbessern. Stellen Sie sicher, dass das Entwicklungsboard mit einer SD-Karte verbunden ist, um Sprachmodelle zu speichern. - Konfigurieren der Entwicklungsumgebung
- Installieren Sie die Rust on ESP-Umgebung, siehe die offizielle Anleitung (Rust on ESP).
- Installieren Sie die Python-Umgebung für den Betrieb des Vosk-Sprache-zu-Text-Dienstes.
- Vosk Chinesisches Modell herunterladen (
vosk-model-cn-0.22.zip
) von der offiziellen Vosk-Website herunter und entpacken Sie es in ein lokales Verzeichnis. - Legen Sie die Sprachmodelldatei (
mn7_cn
undnsnet2
undvadnet1_medium
undwn9_hilexin
Im Folgenden wird eine Kopie der SD-Karte (siehe unten) in das Stammverzeichnis der SD-Karte erstellt.
- Installation von Abhängigkeiten
Führen Sie den folgenden Befehl aus, um die Python-Abhängigkeit zu installieren:pip install vosk flask flask-cors
Stellen Sie sicher, dass die Rust-Umgebung konfiguriert ist und geben Sie die ESPUP-Umgebung ein:
source $HOME/export-esp.sh
- Kompilieren und Hochladen der Firmware
- Klonen des Projektlagers:
git clone https://github.com/paul356/ai-chatbox.git
. - Wechseln Sie in das Projektverzeichnis und führen Sie den Befehl compile aus:
cargo build
- Nach erfolgreicher Kompilierung verwenden Sie den folgenden Befehl, um die Firmware auf das ESP32S3-Entwicklungsboard zu laden:
cargo espflash flash -p /dev/ttyACM0 --flash-size 8mb
- Setzen Sie Umgebungsvariablen (Wi-Fi und DeepSeek-API-Schlüssel):
export WIFI_SSID=<your-ssid> export WIFI_PASS=<your-password> export LLM_AUTH_TOKEN=<your-deepseek-token>
- Klonen des Projektlagers:
- Betrieb eines Sprache-zu-Text-Dienstes
- existieren
vosk-model-cn-0.22
wird auf der obersten Ebene des Verzeichnisses ausgeführt:python vosk_server.py
- Nachdem der Dienst gestartet ist, hören Sie die
http://0.0.0.0:5000/transcribe
Wenn Sie eine WAV-Datei haben, können Sie die WAV-Datei akzeptieren und den Text zurückgeben.
- existieren
- Test-Dienstleistungen
Verwenden Sie den folgenden Befehl, um den Sprache-zu-Text-Dienst zu testen:curl -X POST -F "file=@record.wav" http://127.0.0.1:5000/transcribe
Arbeitsablauf
- Ansaugvorrichtung
Schließen Sie die Entwicklungsplatine an, führen Sie die Firmware aus und überprüfen Sie dann die Protokolle mit dem folgenden Befehl:cargo espflash monitor
- Sprachinteraktion
- Aktivieren Sie das Gerät, indem Sie das Weckwort "Hallo, Loxin" sagen.
- Sagen Sie das Befehlswort "Ich habe eine Frage", um den Aufnahmemodus zu aktivieren.
- Nennen Sie das Problem, das Gerät erkennt 2 Sekunden Stille und stoppt automatisch die Aufnahme.
- Die Sprache wird über den Vosk-Dienst in Text umgewandelt, an die DeepSeek-API gesendet, die Antworten werden abgefragt und im Protokoll aufgezeichnet.
- Ansicht Log
Das Protokoll zeigt den Gerätestatus, Spracherkennungsergebnisse und LLM-Antworten. Zum Beispiel kann die Frage "Was ist ein großes Modell" eine detaillierte Modelldefinition und Funktionsbeschreibung zurückgeben.
caveat
- klare Stimme : Vosk-Modelle sind klein und müssen deutlich ausgesprochen werden, um die Erkennungsgenauigkeit zu verbessern.
- Netzanschluss Das Gerät benötigt eine Wi-Fi-Verbindung für den Zugriff auf die DeepSeek-API.
- Modell Lagerung Vergewissern Sie sich, dass auf der SD-Karte genügend Platz zum Speichern des Sprachmodells vorhanden ist (ca. mehrere hundert MB).
- Komponenten während der Prüfung anpassen Überprüft, ob die Sprache-zu-Text- und LLM-Interaktionen über Protokolle korrekt funktionieren, und Fehlermeldungen werden als
Error:
Der Anfang.
Anwendungsszenario
- intelligenter Assistent
Der Benutzer interagiert mit dem Gerät durch Spracheingabe, um Antworten auf Fragen oder Unterstützung bei Aufgaben zu erhalten, wodurch es für Kinder oder ältere Menschen geeignet ist. Ein Kind kann zum Beispiel fragen: "Warum scheint die Sonne?", und das Gerät gibt eine leicht verständliche Antwort. - Interaktion mit bildschirmlosen Geräten
Sehbehinderte Menschen oder Nutzer, die nicht in der Lage sind, Mobiltelefone zu benutzen, können Informationsabfragen oder alltägliche Dialoge durch Sprachsteuerung erledigen. - Experiment zur eingebetteten Entwicklung
Entwickler können auf diesem Projekt aufbauen, um mehr über die Verwendung von Rust auf eingebetteten Geräten zu erfahren und die Integration von Spracherkennung in größere Modelle zu erkunden. - Bildung und Lernen
Studierende können akademische Fragen per Sprache stellen, und das Gerät stellt eine Verbindung zu einem großen Modell her, um professionelle Antworten zu geben, die sich für Unterrichtsszenarien oder das Selbststudium eignen.
QA
- Welche Sprachen werden von dem Vosk-Modell unterstützt?
Aktuelle Projekte verwendenvosk-model-cn-0.22
Auf der offiziellen Website von Vosk finden Sie weitere Sprachmodelle, die bei Bedarf ersetzt werden können. - Wie lässt sich die Genauigkeit der Spracherkennung verbessern?
Sorgen Sie für eine klare Aussprache und vermeiden Sie Hintergrundgeräusche. Verwenden Sie ein leistungsstärkeres Mikrofon oder rüsten Sie auf ein größeres Modell auf (z. B. dasvosk-model-cn-0.22-large
) kann die Wirkung verstärken. - Wie erhalte ich den DeepSeek-API-Schlüssel?
Besuchen Sie die DeepSeek-Website, um sich zu registrieren und einen API-Schlüssel anzufordern, und konfigurieren Sie den Schlüssel als Umgebungsvariable.LLM_AUTH_TOKEN
. - Unterstützt das Gerät den Offline-Betrieb?
Der Sprache-zu-Text-Dienst (Vosk) funktioniert offline, aber LLM-Interaktionen erfordern einen Internetzugang zur DeepSeek-API.