2024-10-10 10:40:10 +08:00

69 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Whisper Flutter New
[![pub package](https://img.shields.io/pub/v/whisper_flutter_new.svg?label=whisper_flutter_new&color=blue)](https://pub.dev/packages/whisper_flutter_new)
# Important Notice:
**I am currently refactoring the functionality and plan to provide flutter bindings for both llama.cpp and whisper.cpp. After the refactoring is complete, I will consider adapting to Windows and MacOS**
Ready to use [whisper.cpp](https://github.com/ggerganov/whisper.cpp) models implementation for iOS
and Android
1. Support AGP8+
2. Support Android 5.0+ & iOS 13+ & MacOS 11+
3. It is optimized and fast
Supported models: tiny、base、small、medium、large-v1、large-v2
Recommended Modelsbase、small、medium
All models have been actually tested, test devices: Android: Google Pixel 7 Pro, iOS: M1 iOS
simulatorMacOS: M1 MacBookPro & M2 MacMini
## Install library
```bash
flutter pub add whisper_flutter_new
```
## import library
```dart
import 'package:whisper_flutter_new/whisper_flutter_new.dart';
```
## Quickstart
```dart
// Prepare wav file
final Directory documentDirectory = await getApplicationDocumentsDirectory();
final ByteData documentBytes = await rootBundle.load('assets/jfk.wav');
final String jfkPath = '${documentDirectory.path}/jfk.wav';
await File(jfkPath).writeAsBytes(
documentBytes.buffer.asUint8List(),
);
// Begin whisper transcription
/// China: https://hf-mirror.com/ggerganov/whisper.cpp/resolve/main
/// Other: https://huggingface.co/ggerganov/whisper.cpp/resolve/main
final Whisper whisper = Whisper(
model: WhisperModel.base,
downloadHost: "https://huggingface.co/ggerganov/whisper.cpp/resolve/main"
);
final String? whisperVersion = await whisper.getVersion();
print(whisperVersion);
final String transcription = await whisper.transcribe(
transcribeRequest: TranscribeRequest(
audio: jfkPath,
isTranslate: true, // Translate result from audio lang to english text
isNoTimestamps: false, // Get segments in result
splitOnWord: true, // Split segments on each word
),
);
print(transcription);
```