Show pageOld revisionsBacklinksAdd to bookExport to PDFBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Assistente vocale Mycroft ====== ==== Installazione ==== * Scaricare https://mycroft.ai/to/picroft-image * Estrarre lo zip * Flashare il file .img sulla sd del raspberry (si può usare balena etcher) * Aprire terminale nella partizione rootfs della scheda sd: <code> sudo nano /etc/wpa_supplicant/wpa_supplicant.conf </code> Aggiungere in fondo al file le credenziali della rete wifi: <code> network={ ssid="nome rete" psk="password" } </code> * Salvare e chiudere * Mettere la scheda sd nel raspberry e avviarlo * Connettersi via ssh al raspberry: <code> ssh pi@192.168.0.x </code> La password di default è "mycroft" * Saltare la configurazione guidata * Fare il pairing del device su https://account.mycroft.ai/devices o su un server locale * Al termine dell'installazione delle skill, chiudere con ctrl+c **Aggiornamento della configurazione**\\ Dal terminale del raspberry: <code> cd ~ rm .mycroft/mycroft.conf rm .mycroft_cli.conf sudo apt update -y sudo apt upgrade -y sudo apt autoremove -y pip install --upgrade pip cd mycroft-core pip install --upgrade . </code> **Impostare lingua italiana** <code> nano .config/mycroft/mycroft.conf </code> Aggiungere: <code> { ... "lang": "it-it", "system_unit": "metric", "time_format": "full", "date_format": "DMY" // TODO aggiungere "lang": "it-it" al componente tts } </code> ==== Installazione della scheda audio ==== Scheda audio modello ReSpeaker 2 Mics Pi HAT (seeedstudio o keyestudio) * Inserire la scheda respeaker 2-mic nella socket del raspberry * Collegare un altoparlante all'uscita speaker della scheda * Dal terminale del raspberry: <code> deactivate git clone https://github.com/respeaker/seeed-voicecard cd seeed-voicecard sudo ./install.sh </code> **Disattivare la scheda audio integrata:** <code> sudo nano /etc/modprobe.d/raspi-blacklist.conf </code> Scrivere in fondo al file: <code> blacklist snd_bcm2835 </code> Chiudere e salvare **Impostare il sample-rate utilizzato da mycroft** <code> sudo nano /etc/pulse/daemon.conf </code> Scrivere in fondo al file: <code> default-sample-rate = 48000 alternate-sample-rate = 44100 </code> * Chiudere e salvare <code> sudo reboot </code> ==== Test scheda audio ==== Dal terminale del raspberry <code> mycroft-stop systemctl --user stop pulseaudio arecord -f cd -Dhw:0 test.wav // Registrare audio, poi premere ctrl+c aplay -Dhw:0 test.wav // Verificare che venga riprodotto l'audio registrato </code> **Regolazione del mixer** Backup della configurazione iniziale: <code> cd /etc/voicecard sudo cp wm8960_asound.state wm8960_asound.state.save alsamixer </code> * Premere f6 e selezionare seed-2mic-voicecard * Premere f5 per mostrare anche il livello del microfono * Sistemare i volumi (principalmente playback e capture) usando le frecce * Rendere le modifiche permanenti con: <code> sudo alsactl -f /etc/voicecard/wm8960_asound.state store sudo reboot </code> Aprire alsamixer e verificare che le modifiche non siano state cancellate\\ **Nota:** il volume di master viene regolato direttamente da mycroft ==== Skill homeassistant ==== Dal terminale del raspberry: <code> pip install quantulum3 mycroft-msm install homeassistant cd ~/mycroft-core/skills/homeassistant.mycroftai git pull </code> * Creare un long lived access token da home assistant * Andare su https://home.mycroft.ai/skills (o server locale) e inserire ip di home assistant e token ==== Installazione DeepSpeech (pre addestrato) ==== DeepSpeech è il motore STT di Mozilla\\ Scaricare ed estrarre questo modello basato su DeepSpeech:\\ https://coqui.ai/italian/jaco-assistant/v0.0.1 Dal terminale del raspberry: <code> sudo apt update sudo apt install gfortran libatlas-base-dev libpcap-dev libpq-dev pip install deepspeech==0.9.3 scipy av mkdir deepspeech cd deepspeech # copiare in questa cartella il modello tflite e lo scorer scaricati git clone https://github.com/MainRo/deepspeech-server cd deepspeech-server pip install . cp config.sample.json config.json nano config.json </code> Aggiungere a config.json: (assicurarsi che le path siano corrette) <code> ... "deepspeech": { "model" :"/home/pi/deepspeech/model.tflite", "scorer" :"/home/pi/deepspeech/kenlm_it.scorer" }, ... </code> <code> sudo nano .config/mycroft/mycroft.conf </code> Aggiungere a mycroft.conf: <code> ... "stt": { "deepspeech_server": { "uri": "http://localhost:8080/stt" }, "module": "deepspeech_server" }, ... </code> **Creare il servizio deepspeech-server** <code> sudo nano /etc/systemd/system/deepspeech-server.service </code> Scrivere nel file: <code> [Unit] Description=Deepspeech server [Service] User=pi Type=simple ExecStart=/home/pi/mycroft-core/.venv/bin/deepspeech-server --config /home/pi/deepspeech/deepspeech-server/config.j$ Restart=always RestartSec=3 [Install] WantedBy=multi-user.target </code> Attivare il servizio: <code> sudo systemctl enable deepspeech-server sudo systemctl start deepspeech-server </code> **Work in progress** ===== Addestramento manuale di una rete neurale ===== **ATTENZIONE**\\ Prosegui solo se non vuoi usare il modello già addestrato e vuoi addestrare manualmente una rete neurale DeepSpeech.\\ Requisiti: PC Desktop con scheda grafica nvidia Assicurarsi che il sistema operativo supporti CUDA 10.0.0. Non usare versioni più recenti di cuda. (Testato con Ubuntu 18.04) Verificare se i driver nvidia sono installati: <code> nvidia-smi </code> Questo comando dovrebbe mostrare una tabella con alcune proprietà della gpu Installare Cuda 10.0.0, potrebbe essere necessario disinstallare i driver nvidia e reinstallarli dopo cuda\\ https://developer.nvidia.com/cuda-downloads\\ Installare docker e nvidia-docker: seguire una guida specifica per il proprio sistema operativo\\ https://docs.docker.com/engine/install/\\ https://github.com/NVIDIA/nvidia-docker\\ Prima di proseguire è consigliato fare un test per assicurarsi che docker riesca a vedere la gpu Scaricare il dataset più recente di CommonVoice\\ https://commonvoice.mozilla.org/it/datasets Dovrebbe essere un file chiamato it.tar.gz\\ Posizionate l'archivio nella home e lanciate questi comandi: <code> cd $HOME mkdir -p data/sources chmod a+rwx -R data mv it.tar.gz data/sources chmod a+r data/sources/it.tar.gz </code> === Creare l'immagine Docker: === Ho preso un tool di Mozilla-Italia che semplifica l'addestramento, ne ho risolto alcuni bug <code> cd $HOME git clone https://github.com/danieltinazzi/DeepSpeech-Italian-Model cd DeepSpeech-Italian-Model/DeepSpeech </code> <code> chmod +x generate_base_dockerfile.sh ./generate_base_dockerfile.sh docker build . -f Dockerfile.train -t deepspeech/base:0.9.3 docker build . -f Dockerfile_it.train -t deepspeech/it </code> === Avviare l'addestramento === <code> docker run -e "TRANSFER_LEARNING=1" --rm --gpus all --mount type=bind,src=$HOME/data,dst=/mnt -it deepspeech/it </code> Se il processo occupa troppa memoria della gpu potrebbe essere necessario ridurre il BATCH_SIZE, esempio: <code> docker run -e "BATCH_SIZE=32" -e "TRANSFER_LEARNING=1" --rm --gpus all --mount type=bind,src=$HOME/data,dst=/mnt -it deepspeech/it </code> projects/iotaiuto/mycroft.txt Last modified: 2021/12/15 13:10by daniel