Skip to content

speech recognition in dart support all audio format and support server side client side, + support all language, only support in cpu only

License

Notifications You must be signed in to change notification settings

brason/whisper_dart

 
 

Repository files navigation

Whisper

Whisper library speech to text offline,

Refrence

  1. Whisper-Official
  2. Whisper.cpp

Screenshot

Screenshot from 2022-10-24 17-28-26

Install

dart pub add whisper_dart

Tested on

  1. OS: Ubuntu 20.4 CPU: AMD Ryzen 5500u Ram: 8gb
  2. OS: Windows 11 Pro 22H2 (22621.1105) CPU: AMD Ryzen 3600 Ram: 16gb
  3. OS: Android 11 CPU: Snapdragon 665 Ram: 3gb
  4. OS: Android 13 CPU: Snapdragon 730 Ram: 4gb

example

auto convert a given audio to a proper wav accepted by whisper, ffmpeg must be installed

import 'package:galaxeus_lib/galaxeus_lib.dart';
import 'package:universal_io/io.dart';
import 'package:whisper_dart/whisper_dart.dart';
import 'package:ffmpeg_dart/ffmpeg_dart.dart';

void main(List<String> arguments) {
  DateTime time = DateTime.now();

  Whisper whisper = Whisper(
    whisperLib: "whisper.cpp/whisper.so",
  );
  try {
    var res = whisper.request(
      whisperRequest: WhisperRequest.fromWavFile(
        /// auto convert to wav 16
        audio: WhisperAudioconvert.convert(
          audioInput: File("samples/audio.ogg"),
          audioOutput: File("samples/output.wav"),
        ),
        model: File("models/ggml-model-whisper-small.bin"),
      ),
    );
    print(res.toString());
    print(convertToAgo(time.millisecondsSinceEpoch));
  } catch (e) {
    print(e);
  }
}

example 2

example convert audio to text without auto convert

import 'package:galaxeus_lib/galaxeus_lib.dart';
import 'package:universal_io/io.dart';
import 'package:whisper_dart/whisper_dart.dart';
import 'package:ffmpeg_dart/ffmpeg_dart.dart';

void main(List<String> arguments) {
  DateTime time = DateTime.now();

  Whisper whisper = Whisper(
    whisperLib: "whisper.cpp/whisper.so",
  );
  try {
    var res = whisper.request(
      whisperRequest: WhisperRequest.fromWavFile(
        audio: File("samples/output.wav"),
        model: File("models/ggml-model-whisper-small.bin"),
      ),
    );
    print(res.toString());
    print(convertToAgo(time.millisecondsSinceEpoch));
  } catch (e) {
    print(e);
  }
}

result

{
  "@type": "transcribe",
  "text": " And so my fellow Americans, ask not what your country can do for you, ask what you can do for your country."
}

Language Support

About

speech recognition in dart support all audio format and support server side client side, + support all language, only support in cpu only

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.8%
  • CMake 2.2%
  • Dart 1.4%
  • Ruby 0.2%
  • HTML 0.2%
  • C 0.1%
  • Other 0.1%