Flutter如何实现speech_to_text语音识别
在Flutter中如何实现speech_to_text语音识别功能?需要集成哪些插件或依赖?具体代码实现步骤是怎样的?识别后的文本如何处理?有没有推荐的第三方服务或本地识别方案?希望能提供详细的示例和注意事项。
2 回复
在Flutter中实现语音识别,可以使用speech_to_text插件。步骤如下:
-
添加依赖:在pubspec.yaml中添加
dependencies: speech_to_text: ^6.6.0 -
权限配置:
- Android:在
AndroidManifest.xml添加录音权限 - iOS:在
Info.plist添加麦克风使用描述
- Android:在
-
基本使用:
final SpeechToText _speech = SpeechToText(); // 初始化 bool available = await _speech.initialize(); // 开始监听 _speech.listen( onResult: (result) { print(result.recognizedWords); }, ); // 停止监听 _speech.stop(); -
处理结果:通过
onResult回调获取识别文本,可实时显示在UI上。
注意:需要真机测试,模拟器无法使用麦克风。
更多关于Flutter如何实现speech_to_text语音识别的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中实现语音识别,推荐使用 speech_to_text 插件。以下是实现步骤:
1. 添加依赖
在 pubspec.yaml 中添加:
dependencies:
speech_to_text: ^6.6.0
运行 flutter pub get。
2. 配置权限
Android:在 android/app/src/main/AndroidManifest.xml 中添加:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
iOS:在 ios/Runner/Info.plist 中添加:
<key>NSMicrophoneUsageDescription</key>
<string>需要麦克风权限进行语音识别</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>需要语音识别权限</string>
3. 基本实现代码
import 'package:flutter/material.dart';
import 'package:speech_to_text/speech_to_text.dart' as stt;
class SpeechScreen extends StatefulWidget {
@override
_SpeechScreenState createState() => _SpeechScreenState();
}
class _SpeechScreenState extends State<SpeechScreen> {
stt.SpeechToText _speech = stt.SpeechToText();
bool _isListening = false;
String _text = '点击按钮开始说话';
@override
void initState() {
super.initState();
_initSpeech();
}
void _initSpeech() async {
bool available = await _speech.initialize(
onStatus: (status) => print('Status: $status'),
onError: (error) => print('Error: $error'),
);
if (!available) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('语音识别不可用')),
);
}
}
void _listen() async {
if (!_isListening) {
bool available = await _speech.listen(
onResult: (result) => setState(() {
_text = result.recognizedWords;
}),
listenFor: Duration(seconds: 30),
pauseFor: Duration(seconds: 5),
);
if (available) {
setState(() => _isListening = true);
}
} else {
_speech.stop();
setState(() => _isListening = false);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('语音识别')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(_text, style: TextStyle(fontSize: 20)),
SizedBox(height: 20),
ElevatedButton(
onPressed: _listen,
child: Text(_isListening ? '停止录音' : '开始录音'),
),
],
),
),
);
}
}
4. 关键功能说明
initialize():初始化语音识别服务listen():开始监听语音输入stop():停止监听onResult:接收识别结果- 支持设置监听时长和暂停时长
5. 注意事项
- 首次使用需要用户授权麦克风权限
- 不同设备支持的语言可能不同
- 在真实设备上测试,模拟器可能无法正常工作
这个实现提供了基本的语音识别功能,你可以根据需要添加错误处理、语言设置等高级功能。

