Dog Trainer
A device that allows dogs to speak. Click on the picture to see the video with the dog-trainer in action
Hardware
-
Raspberry pi (any version with an USB port) e.g. Raspberry Pi Model B+
-
Buttons connected to the Raspberry pi GPIO as shown in the schema to debounce noisy contacts

-
USB speaker with a microphone e.g. Jabra Speak 410 or Codec Zero
-
for the
Codec Zeromake follwoing changes
sudo nano /boot/config.txt
#dtparam=audio=on
dtoverlay=rpi-codeczero
-
microSD card 8GB
-
USB power supply 5V 500mA
Operating system
Install Raspberry Pi Imager into your notebook. Launch it and choose Raspberry Pi OS Lite to write into the microSD card
Power on the Raspberry Pi and finish the installation process. Log into its console using either:
- ethernet/wifi from your notebook:
ssh pi@raspberrypi - connected keyboard and monitor
- serial port
Prerequisites
Once you are logged into the Raspberry pi console update your system
sudo apt update
sudo apt upgrade
Install git. It will be used to download the dog-trainer
sudo apt install -y git
Recordings must be edited a little bit therefore some audio processing tool is needed. Install ffmpeg which will do the job
sudo apt install -y ffmpeg
How to install
Clone the dog-trainer source code into your home directory
cd
git clone https://gitea.virtonline.eu/2HoursProject/dog-trainer.git --depth 1
Go into the newly created directory
cd ~/dog-trainer
Configuration
Check your Raspberry pi board pin layout and make sure your buttons GPIOs match PINS = [17, 22, 27] from dog-trainer.py
pinout
Try using default audio device for playback and recording. Edit dog-trainer.py and activate PLAY_DEVICE="default" and REC_DEVICE="default"
nano dog-trainer.py
Skip to the next section Run it!. If either playback or recording does not work check your sound cards
aplay -L | grep ^hw:CARD=
arecord -L | grep ^hw:CARD=
Put your sound device name "hw:Zero" or "hw:USB" into the ALSA config file
nano .asoundrc
Install the ALSA config file
mv .asoundrc ~/
Run it!
Just run
python3 dog-trainer.py
Pres Ctrl+c to exit
Make it a service to automaticaly start and run in the backgroud
If your $HOME directory is other then /home/pi then modify the systemd service file
sed -i "s#/home/pi#$HOME#g" dog-trainer.service
If your username and group is other then pi and pi then also run
sed -i "s#User=pi#User=$USER#" dog-trainer.service
sed -i "s#Group=pi#Group=$(id -gn)#" dog-trainer.service
sed -i "s#User=pi#User=$USER#" sound-init.service
sed -i "s#Group=pi#Group=$(id -gn)#" sound-init.service
Install the systemd service files
sudo mv dog-trainer.service /etc/systemd/system/
sudo mv sound-init.service /etc/systemd/system/
Reload systemd manager configuration
sudo systemctl daemon-reload
Enable the dog-trainer service at boot time and also run it
sudo systemctl enable --now dog-trainer
If it does not work check logs
journalctl -f -u dog-trainer
Set volume for playback and recording
Launch soundcard mixer
alsamixer
Press F6 to select a soundcard. Find your USB sound device in the list e.g. Jabra Speak 410 USB. Press F4 and use up/down arrow keys to set recording volume and repeat also for the playback (F3). Make sure it is not muted. Press (m) to toggle mute. Press ESC to exit.
To preserve audio setting after the boot run
sudo alsactl store
