Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

A python wrapper around MARF speaker recognition frameworkfor raspberry pi and other SBCs

Project Description

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.

Blink example

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

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

    for i in range(0,10):

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

Tested on

  • Ubuntu 15.10
  • Pi 1 model B (raspbian wheezy, jessie)
  • Pi 2 model B (raspbian wheezy, jessie, stretch)
  • CHIP


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
$ cd Piwho
$ python install


Tests are implemented using unittest framework:

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

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.


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



Release History

This version
History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(882.8 kB) Copy SHA256 Hash SHA256
Source None Jan 12, 2018

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers