Version1.0.1+git2.e2f628f-dirty
Revision43
Size623.6 MB
LicenseAGPL-3.0
Confinementstrict
Basecore24
CategoriesUtilities

Monitor your dog's barks


ATTENTION: the snap *might* be fixed with the latest version. Please let me know if it works for you so I can remove this banner.

IMPORTANT: Make sure to plug all the available slots with sudo snap connect bark-monitor:XXX. See available slots with snap connections bark-monitor

_____

Do you also have neighbor who accuses your dog of barking all the time, want to kick you out of your flat because of it, even though you know it's not true? Do you want to know if your dog is actually noisy when you are gone but you don't (and don't want to buy) a baby cam?

Then this project is for you!

How to use the bark monitor

The bark monitor will:

  • Record your dog while you are gone.
The recordings are saved in a folder to enable you to really show that neighbor they are full of shit.
  • Monitor its barking real time and send you notification through a Telegram bot when your neighbor drives the dog crazy and they barks.
Detection of the bark can be done using the [Yamnet](https://www.tensorflow.org/hub/tutorials/yamnet) neural network implemented in tensorflow, or the amplitude of the signal.
Using Yamnet, cats are also tracked ;).

To setup the program:

1. Create a [Telegram bot](https://www.rowy.io/blog/create-telegram-bot) and obtain the api key.
2. Create a config file somewhere with this content:

``
 {
   "apikey": "you api key",
   "outputfolder": "where to save the recordings",
   "configfolder": "where to save the telegram bot configuration"
 }


 `


3. Start the program by running
python3 scripts/yamnetrecord.py --config-file <path to config file> to launch the NN based detection.
If you are launching the program for the first time and went to register new users to the bot add the flag --accept-new-users and send \register to the telegram bot


Recordings

Recordings are saved in
output
folder in different folder for each day and time stamped:

 `bash
 outputfolder
   |--18-05-2026
       |--18-05-2023-14-12.wav
       |--18-05-2023-15-10.wav
       |--recording.json
 `


recording.json contains info about the day: when was the recorder on, how long has the dog barked.

Telegram bot

Commands available to the bot are:

  • \register: register to receive updates from the bot.
  • \start: start the recorder
  • \stop: stop the recorder
  • \status: get the current status of the recorder -> is it recording and how long as the animal barked today.
  • \pause: pause the current recording without stopping it---on/off time won't be registered in the app state.
  • \unpause: restart a paused recorder.
  • \barklevel: return the threshold for amplitude if using the amplitude based detection.

See in the file
barkmonitor/verybark_bot.py to see the commands available to the bot.

Contributions

Contributions are always welcome to help show my neighbor is wrong!

Code submitted should be formatted with [black](https://pypi.org/project/black/) and pass
flake8 . with no errors.
All methods should be type hinted and return types should always be present even when it's
None`.

If possible, submit unit tests and a picture of your dog with your PR (I also accept cat pictures as payments).

Update History

1.0.1+git2.e2f628f-dirty (43)
13 Dec 2025, 09:47 UTC

Published22 Mar 2023, 17:29 UTC

Last updated4 Jan 2025, 23:33 UTC

First seen13 Dec 2025, 09:47 UTC