Recognize Speakers and Publish Results
messages | topic | payload |
---|---|---|
recognize | ais/recognize/voice/+device_id | bytes of voice |
set name | ais/recognize/setname/+device_id | "audio_path=name" |
recognition result | ais/recognize/result/+device_id/+audio_path | "speaker_name" or "unknown" |
- surgemq based MQTT broker
- test publish/subscribe message
- recognition in new thread with voice file specified in message payload
- train speakers model with given voice
- test recognition of trained model
- voice transfer by mqtt payload?(try..)
- receive bytearray(sent by mock-speaker), save to file
- pass the file to GStreamer(restricted by the implementation of voiceid)
- receive bytearray sent from iOS client
- rewrite the method to add/modify voice model!
- merge voice models of single speaker
- post to server
- handle name whitespace
- message retain
- voiceid: https://code.google.com/p/voiceid/
- MQTT client paho: https://eclipse.org/paho/clients/python/
- MQTT broker surgemq: https://github.com/surgemq/surgemq
- Audio format restricted by: https://developer.apple.com/library/mac/documentation/MusicAudio/Reference/CAFSpec/CAF_spec/CAF_spec.html and http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-types-definitions.html
- MQTT protocol: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html
- some manual tests using: http://mqttfx.jfx4ee.org/