DeepVoice
DeepVoice

Reputation: 21

How to create a high quality wake-word solution for Android/ios app. Which technology stacks to try?

I am trying using:

  1. Tensor flow lite- unable to achieve desired accuracy & training sample size requirement seems to be very high. Q1) What's the minimum sample size required?

  2. Kaldi - size send to be around 30MB, prohibitively high. Q2) What are the pros& cons of using Kaldi?

Also, I have tried using models & stacks from:

  1. Porcupine
  2. Spokestack
  3. Sensory

Currently, I am evaluating Edge Impulse. Q3) Can anyone guide me how to convert the .lite model to. tflite?

Q4) What am I missing??

Upvotes: 2

Views: 365

Answers (1)

Stypox
Stypox

Reputation: 1200

I used OpenWakeWord recently and it worked quite well. I was able to train a custom wake word tflite model using synthetic data in a few hours, and then run it in Android using tflite's Java bindings. The wake word model is very lightweight (~2.5MB in total), and its performance is quite good, though be aware that the embedding and melspectrogram models are trained on English only. Furthermore, OpenWakeWord is open source under the Apache-2.0 license.

  • You can find the scripts to train a new model here
  • You can find my Kotlin implementation which uses the tflite Java bindings here (licensed under GPLv3)
  • There are actually three models at play: the melspectrogram and embedding models, which can be downloaded from the releases, and the actual wake word model that you train yourself

Upvotes: 0

Related Questions