sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Aggiungere in fondo al file le credenziali della rete wifi:
network={
ssid="nome rete"
psk="password"
}
ssh pi@192.168.0.x
La password di default è “mycroft”
Aggiornamento della configurazione
Dal terminale del raspberry:
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 .
Impostare lingua italiana
nano .config/mycroft/mycroft.conf
Aggiungere:
{
...
"lang": "it-it",
"system_unit": "metric",
"time_format": "full",
"date_format": "DMY"
// TODO aggiungere "lang": "it-it" al componente tts
}
Scheda audio modello ReSpeaker 2 Mics Pi HAT (seeedstudio o keyestudio)
deactivate git clone https://github.com/respeaker/seeed-voicecard cd seeed-voicecard sudo ./install.sh
Disattivare la scheda audio integrata:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Scrivere in fondo al file:
blacklist snd_bcm2835
Chiudere e salvare
Impostare il sample-rate utilizzato da mycroft
sudo nano /etc/pulse/daemon.conf
Scrivere in fondo al file:
default-sample-rate = 48000 alternate-sample-rate = 44100
sudo reboot
Dal terminale del raspberry
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
Regolazione del mixer
Backup della configurazione iniziale:
cd /etc/voicecard sudo cp wm8960_asound.state wm8960_asound.state.save alsamixer
Aprire alsamixer e verificare che le modifiche non siano state cancellate
Nota: il volume di master viene regolato direttamente da mycroft
Dal terminale del raspberry:
pip install quantulum3 mycroft-msm install homeassistant cd ~/mycroft-core/skills/homeassistant.mycroftai git pull
ATTENZIONE
Usa questa parte di guida solo se vuoi addestrare manualmente una rete neurale DeepSpeech.
Se vuoi usare la rete neurale DeepSpeech italiana già addestrata, salta questa parte.
A breve caricherò una versione addestrata della rete neurale aggiornata con il nuovo dataset CommonVoice di mozilla.
Requisiti: PC linux con scheda grafica nvidia
Verificare se i driver nvidia sono installati:
nvidia-smi
Questo comando dovrebbe mostrare una tabella con alcune proprietà della gpu
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
Estraetelo, rinominate la cartella “it” in “cv-it”, e ricomprimetelo in “it.tar.gz”.
Posizionate l'archivio nella home e lanciate questi comandi:
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
cd $HOME git clone MozillaItalia/DeepSpeech-Italian-Model.git cd DeepSpeech-Italian-Model/DeepSpeech
Nella versione di DeepSpeech che stiamo usand sono presenti alcuni bug. Possiamo correggerli cambiando il file “generatebasedockerfile.sh” con una versione modificata che trovate qui: https://github.com/danieltinazzi/DeepSpeech-Italian-Model/blob/master/DeepSpeech/generate_base_dockerfile.sh
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
docker run -e "TRANSFER_LEARNING=1" --rm --gpus all --mount type=bind,src=$HOME/data,dst=/mnt -it deepspeech/it
Se non avete un supercomputer potrebbe essere necessario modificare il BATCH_SIZE
Funzionante sul mio laptop con gpu 4gb:
docker run -e "BATCH_SIZE=32" -e "TRANSFER_LEARNING=1" --rm --gpus all --mount type=bind,src=$HOME/data,dst=/mnt -it deepspeech/it
Work in progress.
DeepSpeech è il motore STT di Mozilla
Dal terminale del raspberry:
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 curl -LO https://github.com/MozillaItalia/DeepSpeech-Italian-Model/releases/download/2020.08.07/transfer_model_tflite_it.tar.xz tar xvf transfer_model_tflite_it.tar.xz rm transfer_model_tflite_it.tar.xz git clone https://github.com/MainRo/deepspeech-server cd deepspeech-server pip install . cp config.sample.json config.json nano config.json
Aggiungere a config.json:
...
"deepspeech": {
"model" :"/home/pi/deepspeech/output_graph.tflite",
"scorer" :"/home/pi/deepspeech/scorer"
},
...
sudo nano .config/mycroft/mycroft.conf
Aggiungere a mycroft.conf:
...
"stt": {
"deepspeech_server": {
"uri": "http://localhost:8080/stt"
},
"module": "deepspeech_server"
},
...
Creare il servizio deepspeech-server
sudo nano /etc/systemd/system/deepspeech-server.service
Scrivere nel file:
[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
Attivare il servizio:
sudo systemctl enable deepspeech-server sudo systemctl start deepspeech-server
Work in progress