vosk_flutter 0.3.48 copy "vosk_flutter: ^0.3.48" to clipboard
vosk_flutter: ^0.3.48 copied to clipboard

Flutter plugin for offline speech recognition using the Vosk speech recognition toolkit.

Vosk Flutter Plugin #

pub package style: very good analysis vosk_flutter

Flutter plugin for Vosk speech recognition.

Platform Support #

Android iOS MacOS Web Linux Windows

Usage #

Configurations #

Follow the instruction at the Installing page of the package.

Android

Add this pro guard rules in android/app/proguard-rules.pro(if the file does not exist - create it):

-keep class com.sun.jna.* { *; }
-keepclassmembers class * extends com.sun.jna.* { public *; }

If you want to use a microphone input, add the microphone permission to your AndroidManifest.xml:

<uses-permission android:name="android.permission.RECORD_AUDIO" />

Load model #

flutter:
  assets:
    - assets/models/

final vosk = VoskFlutterPlugin.instance();
final enSmallModelPath = await ModelLoader()
    .loadFromAssets('assets/models/vosk-model-small-en-us-0.15.zip');

Create recognizer #

final recognizer = await vosk.createRecognizer(
    model: model,
    sampleRate: sampleRate,
);
final recognizerWithGrammar = await vosk.createRecognizer(
    model: model,
    sampleRate: sampleRate,
    grammar: ['one', 'two', 'three'],
);

Recognize audio data #

Uint8List audioBytes = ...; // audio data in PCM 16-bit mono format
List<String> results = [];
int chunkSize = 8192;
int pos = 0;

while (pos + chunkSize < audioBytes.length) {
    final resultReady = await recognizer.acceptWaveformBytes(
      Uint8List.fromList(audioBytes.getRange(pos, pos + chunkSize).toList()));
    pos += chunkSize;
    
    if (resultReady) {
      print(await recognizer.getResult());
    } else {
      print(await recognizer.getPartialResult());
    }
}
await recognizer.acceptWaveformBytes(
  Uint8List.fromList(audioBytes.getRange(pos, audioBytes.length).toList()));
print(await recognizer.getFinalResult());

Recognize microphone data #

Android

final speechService = await vosk.initSpeechService(recognizer);
speechService.onPartial().forEach((partial) => print(partial));
speechService.onResult().forEach((result) => print(result));
await speechService.start();

Linux & Windows

Use any suitable plugin to get the microphone input and pass it to a recognizer

20
likes
110
points
379
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter plugin for offline speech recognition using the Vosk speech recognition toolkit.

Homepage
Repository (GitHub)

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

archive, args, build_cli_annotations, ffi, flutter, http, package_config, path, path_provider, permission_handler, pubspec_parse

More

Packages that depend on vosk_flutter