Flutter语音识别插件azure_speech_recognition_null_safety的使用
Flutter语音识别插件 azure_speech_recognition_null_safety
的使用
概述
Azure Speech Recognition for Flutter 是一个用于在 Flutter 应用中集成 Azure 语音识别服务的插件。该插件支持 Android 和 iOS 平台。
重要提示: 使用此插件之前,您需要在 Azure 认知服务页面上创建一个账户,并获取订阅密钥和服务器区域。
安装
在 pubspec.yaml
文件中添加最新版本的 azure_speech_recognition_null_safety
:
dependencies:
azure_speech_recognition_null_safety: ^<insert_latest_version_here>
初始化
导入包
首先,在 Dart 文件中导入包:
import 'package:azure_speech_recognition_null_safety/azure_speech_recognition_null_safety.dart';
初始化设置
默认语言设置为 "en-EN"
,但您可以根据需要选择其他支持的语言。分割静音超时默认值为 1000 毫秒(必须是 100 到 5000 之间的整数)。
AzureSpeechRecognition.initialize("your_subscription_key", "your_server_region", lang: "it-IT", timeout: "3000");
识别类型
简单语音识别
执行语音识别直到检测到静音为止。返回最终转录文本并提供部分结果更新。
AzureSpeechRecognition.simpleVoiceRecognition();
连续语音识别
调用方法可以在开启和关闭语音识别之间切换。注意:必须手动停止识别以避免内存泄漏。
AzureSpeechRecognition.continuousRecording();
示例程序
以下是一个完整的示例,展示了如何初始化和使用插件进行语音识别。
import 'package:flutter/material.dart';
import 'package:azure_speech_recognition_null_safety/azure_speech_recognition_null_safety.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
[@override](/user/override)
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
AzureSpeechRecognition? _speechAzure;
void activateSpeechRecognizer(){
// 必须初始化
AzureSpeechRecognition.initialize("your_subscription_key", "your_server_region", lang: "it-IT", timeout: "3000");
_speechAzure?.setFinalTranscription((text) {
// 处理最终转录文本
print("Final Transcription: $text");
});
_speechAzure?.setRecognitionStartedHandler(() {
// 开始识别时调用
print("Recognition Started");
});
}
[@override](/user/override)
void initState() {
super.initState();
_speechAzure = AzureSpeechRecognition();
activateSpeechRecognizer();
}
// 启动简单语音识别的方法
Future recognizeVoice() async {
try {
await AzureSpeechRecognition.simpleVoiceRecognition();
} on PlatformException catch (e) {
print("启动识别失败: '${e.message}'.");
}
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Azure Speech Recognition Demo')),
body: Center(
child: ElevatedButton(
onPressed: recognizeVoice,
child: Text('开始语音识别'),
),
),
),
);
}
}
更多关于Flutter语音识别插件azure_speech_recognition_null_safety的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter语音识别插件azure_speech_recognition_null_safety的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用azure_speech_recognition_null_safety
插件进行语音识别的代码示例。这个插件可以让你使用Azure的语音识别服务来将语音转换为文本。
首先,确保你已经在pubspec.yaml
文件中添加了依赖:
dependencies:
flutter:
sdk: flutter
azure_speech_recognition_null_safety: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
接下来,你需要配置Azure认知服务的语音识别密钥和区域。这些信息可以从Azure门户获取。
以下是一个完整的示例,展示如何使用azure_speech_recognition_null_safety
插件:
import 'package:flutter/material.dart';
import 'package:azure_speech_recognition_null_safety/azure_speech_recognition_null_safety.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Azure Speech Recognition Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: SpeechRecognitionPage(),
);
}
}
class SpeechRecognitionPage extends StatefulWidget {
@override
_SpeechRecognitionPageState createState() => _SpeechRecognitionPageState();
}
class _SpeechRecognitionPageState extends State<SpeechRecognitionPage> {
final String azureSubscriptionKey = 'YOUR_AZURE_SUBSCRIPTION_KEY';
final String azureServiceRegion = 'YOUR_AZURE_SERVICE_REGION'; // e.g., "westus"
late SpeechRecognition _speechRecognition;
String _recognizedText = '';
@override
void initState() {
super.initState();
_speechRecognition = SpeechRecognition(
subscriptionKey: azureSubscriptionKey,
serviceRegion: azureServiceRegion,
);
_speechRecognition.initialize();
}
@override
void dispose() {
_speechRecognition.dispose();
super.dispose();
}
Future<void> startRecognition() async {
try {
final result = await _speechRecognition.recognizeSpeechFromMicrophone();
setState(() {
_recognizedText = result;
});
} catch (e) {
print('Error recognizing speech: $e');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Azure Speech Recognition Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Recognized Text:',
style: TextStyle(fontSize: 20),
),
SizedBox(height: 10),
Text(
_recognizedText,
style: TextStyle(fontSize: 24),
textAlign: TextAlign.center,
),
SizedBox(height: 20),
ElevatedButton(
onPressed: startRecognition,
child: Text('Start Recognition'),
),
],
),
),
);
}
}
代码说明:
- 依赖导入:确保在
pubspec.yaml
中添加了azure_speech_recognition_null_safety
插件。 - Azure配置:在代码中用实际的Azure订阅密钥和服务区域替换
YOUR_AZURE_SUBSCRIPTION_KEY
和YOUR_AZURE_SERVICE_REGION
。 - 初始化:在
initState
方法中初始化SpeechRecognition
实例。 - 识别逻辑:
startRecognition
方法启动语音识别,并将结果更新到UI。 - UI:一个简单的UI,包含一个按钮用于启动语音识别,并显示识别到的文本。
请确保你已经在Azure门户创建了认知服务资源,并获取了正确的密钥和区域。如果你还没有Azure账户,可以先注册一个。
希望这个示例能帮你成功地在Flutter应用中使用Azure的语音识别服务!