leopard_flutter 1.1.0 icon indicating copy to clipboard operation
leopard_flutter: ^1.1.0 copied to clipboard

A Flutter plugin for Picovoice's Leopard Speech-to-Text engine

Leopard Binding for Flutter #

Leopard Speech-to-Text Engine #

Made in Vancouver, Canada by Picovoice

Leopard is an on-device speech-to-text engine. Leopard is:

  • Private; All voice processing runs locally.
  • Accurate
  • Compact and Computationally-Efficient
  • Cross-Platform:
    • Linux (x86_64), macOS (x86_64, arm64), Windows (x86_64)
    • Android and iOS
    • Chrome, Safari, Firefox, and Edge
    • Raspberry Pi (4, 3) and NVIDIA Jetson Nano

Compatibility #

This binding is for running Leopard on Flutter 2.8.1+ on the following platforms:

  • Android 5.0+ (API 21+)
  • iOS 9.0+

Installation #

To start, you must have the Flutter SDK installed on your system. Once installed, you can run flutter doctor to determine any other missing requirements.

To add the Leopard plugin to your app project, you can reference it in your pub.yaml:

  leopard_flutter: ^<version>

AccessKey #

Leopard requires a valid Picovoice AccessKey at initialization. AccessKey acts as your credentials when using Leopard SDKs. You can get your AccessKey for free. Make sure to keep your AccessKey secret. Signup or Login to Picovoice Console to get your AccessKey.

Permissions #

To enable recording with the hardware's microphone, you must first ensure that you have enabled the proper permissions on both iOS and Android.

On iOS, open your Info.plist and add the following line:

<string>[Permission explanation]</string>

On Android, open your AndroidManifest.xml and add the following line:

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

Leopard Model File Integration #

Add the Leopard model file to your Flutter application:

  1. Create a model in Picovoice Console or use the default model.
  2. Add the model file to an assets folder in your project directory.
  3. Add the asset to your pubspec.yaml:
    - assets/leopard_model.pv
  1. In this example, the path to the model file in code would then be as follows:
String modelPath = "assets/leopard_model.pv";

Usage #

An instance of Leopard is created by passing a model file path into its static constructor create:

import 'package:leopard_flutter/leopard.dart';

const accessKey = "{ACCESS_KEY}"  // AccessKey obtained from Picovoice Console (https://console.picovoice.ai/)

void createLeopard() async {
    try {
        _leopard = await Leopard.create(accessKey, '{LEOPARD_MODEL_PATH}');
    } on LeopardException catch (err) {
        // handle Leopard init error

Transcribe an audio file by passing in the path:

try {
    LeopardTranscript result = await _leopard.processFile("${AUDIO_FILE_PATH}");
} on LeopardException catch (err) { }

When done, resources have to be released explicitly:


Demo App #

For example usage, refer to our Flutter demo application.

pub points


verified publisher iconpicovoice.ai

A Flutter plugin for Picovoice's Leopard Speech-to-Text engine

Repository (GitHub)


API reference


Icon for licenses.Apache-2.0 (LICENSE)


flutter, path_provider


Packages that depend on leopard_flutter