Flutter高精度轻量级的唤醒词引擎语音聆听插件porcupine_flutter使用
Flutter高精度轻量级的唤醒词引擎语音聆听插件porcupine_flutter使用
Porcupine简介
Flutter插件Porcupine 是一个高精度且轻量级的唤醒词引擎,它使开发者能够构建始终监听的语音启用应用程序。其特点包括:
- 私密和离线:无需联网即可运行。
- 准确:具有高度准确性。
- 资源高效:甚至可以在微控制器上运行。
- 数据高效:通过简单的文本输入生成自定义唤醒词,而不需要大量的音频训练数据。
- 可扩展性:支持多个同时唤醒词/始终开启的语音命令。
- 跨平台:支持多种操作系统。
兼容性
此绑定适用于在以下平台上运行Flutter 2.8.1+:
- Android 5.0+ (API 21+)
- iOS 13.0+
安装
首先需要安装Flutter SDK并确保所有依赖项都已就绪。然后在pubspec.yaml
文件中添加Porcupine插件:
dependencies:
porcupine_flutter: ^<version>
或引用本地路径:
dependencies:
porcupine_flutter:
path: /path/to/porcupine/flutter/binding
注意事项
在iOS发布时,可能需要更改项目的构建设置以防止Porcupine库被剥离。具体操作为在XCode中将Runner项目中的Strip Style
设置为Non-Global Symbols
。
AccessKey
Porcupine需要有效的Picovoice AccessKey
进行初始化。你可以从Picovoice Console获取免费的AccessKey
。
权限
在iOS和Android上启用麦克风权限:
iOS
在Info.plist
中添加:
<key>NSMicrophoneUsageDescription</key>
<string>[Permission explanation]</string>
Android
在AndroidManifest.xml
中添加:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
使用示例
高级API
使用PorcupineManager
类可以快速实现唤醒词检测:
import 'package:porcupine_flutter/porcupine_manager.dart';
import 'package:porcupine_flutter/porcupine_error.dart';
final String accessKey = "{ACCESS_KEY}"; // 替换为你的AccessKey
void createPorcupineManager() async {
try{
_porcupineManager = await PorcupineManager.fromBuiltInKeywords(
accessKey,
[BuiltInKeyword.PICOVOICE, BuiltInKeyword.PORCUPINE],
_wakeWordCallback);
} on PorcupineException catch (err) {
// 处理初始化错误
}
}
void _wakeWordCallback(int keywordIndex) {
if (keywordIndex == 0) {
print("PicoVoice detected");
} else if (keywordIndex == 1) {
print("Porcupine detected");
}
}
启动和停止检测:
try{
await _porcupineManager.start();
} on PorcupineException catch (ex) {
// 处理异常
}
await _porcupineManager.stop();
释放资源:
await _porcupineManager.delete();
自定义唤醒词集成
将自定义唤醒词文件添加到项目目录的assets
文件夹,并在pubspec.yaml
中声明:
flutter:
assets:
- assets/keyword.ppn
然后在代码中使用:
String keywordAsset = "assets/keyword.ppn";
try{
_porcupine = await Porcupine.fromKeywordPaths(
accessKey,
[keywordAsset]);
} on PorcupineException catch (err) {
// 处理初始化错误
}
示例应用
完整的示例应用可以从Porcupine Flutter Demo获取,查看如何在跨平台应用中使用Porcupine。
以上内容展示了如何在Flutter应用中使用Porcupine插件来实现唤醒词检测,希望对您有所帮助!
更多关于Flutter高精度轻量级的唤醒词引擎语音聆听插件porcupine_flutter使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter高精度轻量级的唤醒词引擎语音聆听插件porcupine_flutter使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
Flutter插件Porcupine 是一个高精度且轻量级的唤醒词引擎,它使开发者能够构建始终监听的语音启用应用程序