Skip to main content

Piwho is python wrapper around MARF speaker recognition framework for the Raspberry pi and other SBCs. With the Piwho you can implement speaker recognition in your projects.

https://travis-ci.org/Adirockzz95/Piwho.svg?branch=v1.3.0

Blink example

import RPi.GPIO as GPIO
import time
from piwho import recognition, vad

def blink(pin):
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(pin, GPIO.OUT)

    for i in range(0,10):
        GPIO.output(pin,GPIO.HIGH)
        time.sleep(1)
        GPIO.output(pin,GPIO.LOW)
        time.sleep(1)

if __name__ == "__main__":
   recog = recognition.SpeakerRecognizer('./')
   vad.record()
   name = recog.identify_speaker()
   if name[0] == 'Abhishek':
       blink(11)

Tested on

  • Ubuntu 15.10

  • Pi 1 model B (raspbian wheezy, jessie)

  • Pi 2 model B (raspbian wheezy, jessie, stretch)

  • CHIP

Installation

Update the Pi

$ sudo apt-get update
$ sudo apt-get upgrade

You need to have JDK (min version: 1.7) installed on your Pi.

# verify jdk is installed
$ java -version

Pyaudio is required to run audio recording script. (Optional)

# Install portaudio
$ sudo apt-get install portaudio19-dev
# Install python dev package
$ sudo apt-get install python2.7-dev
# Install pyaudio
$ pip install pyaudio

Piwho is on PyPI

$ pip install piwho

or clone the project from github

$ git clone https://www.github.com/Adirockzz95/Piwho.git
$ cd Piwho
$ python setup.py install

Tests

Tests are implemented using unittest framework:

$ pip install -r requirements.txt
$ python -m unittest discover -v ./tests

Documentation

Tips / Caveats

  • Recognition/Training time depends on the length of an audio file.

  • If possible overclock your Pi- use Turbo mode.

  • Give maxmium RAM to CPU.

  • Read MARF manual to know how the it works.

  • Recognition speed is directly proportional to the CPU power.

Misc

Here are resources/similar projects I came across while working on this project.

LICENSE

MIT

Release files for piwho 1.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for piwho 1.3.2
File Size Uploaded
piwho-1.3.2.tar.gz 882.8 kB Details

Release files / piwho-1.3.2.tar.gz

Download URL piwho-1.3.2.tar.gz
Size 882.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9c108ef551d29fcfab547519d9e7b61b1c0227a37a5c67f59d801c97eea3fd96
BLAKE2b-256 checksum
How to use checksums
2e6800a2f1dde6eaaf3cfb713c4337cae6e450f6f83e8cc93bb9f343d7478dcb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.3.2 This release

1 release file

1.3.1

1 release file

1.1.0

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page