vosk_flutter_2 1.0.5 copy "vosk_flutter_2: ^1.0.5" to clipboard
vosk_flutter_2: ^1.0.5 copied to clipboard

PlatformAndroid

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();
3
likes
140
pub points
67%
popularity

Publisher

unverified uploader

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

Homepage
Repository (GitHub)
View/report issues

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_2