Flutter如何使用flutter_tts文本转语音插件
我在Flutter项目中想实现文本转语音功能,听说flutter_tts插件不错,但不知道具体如何使用。请问:
- 如何正确安装和配置flutter_tts插件?
- 有没有简单的代码示例演示基本的文本转语音功能?
- 这个插件支持哪些语言和语音选项?
- 使用时需要注意哪些常见问题或限制?
项目比较急,希望能得到详细指导,谢谢!
2 回复
在Flutter中使用flutter_tts插件,首先在pubspec.yaml中添加依赖:
dependencies:
flutter_tts: ^3.8.3
然后运行flutter pub get。
基本用法:
import 'package:flutter_tts/flutter_tts.dart';
FlutterTts flutterTts = FlutterTts();
// 设置语言和语速
await flutterTts.setLanguage("zh-CN");
await flutterTts.setSpeechRate(0.5);
// 播放语音
await flutterTts.speak("你好,世界");
支持设置音量、音调等参数。
更多关于Flutter如何使用flutter_tts文本转语音插件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中使用flutter_tts插件实现文本转语音非常简单,以下是详细步骤:
1. 添加依赖
在pubspec.yaml文件中添加依赖:
dependencies:
flutter_tts: ^3.8.3
然后运行flutter pub get
2. 基本使用代码
import 'package:flutter/material.dart';
import 'package:flutter_tts/flutter_tts.dart';
class TtsExample extends StatefulWidget {
@override
_TtsExampleState createState() => _TtsExampleState();
}
class _TtsExampleState extends State<TtsExample> {
FlutterTts flutterTts = FlutterTts();
String text = "你好,这是一个文本转语音的示例";
@override
void initState() {
super.initState();
initTts();
}
void initTts() async {
// 设置语言
await flutterTts.setLanguage("zh-CN");
// 设置语速 0.0-1.0
await flutterTts.setSpeechRate(0.5);
// 设置音量 0.0-1.0
await flutterTts.setVolume(1.0);
// 设置音调 0.5-2.0
await flutterTts.setPitch(1.0);
}
Future<void> speak() async {
await flutterTts.speak(text);
}
Future<void> stop() async {
await flutterTts.stop();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('TTS示例')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(text),
SizedBox(height: 20),
ElevatedButton(
onPressed: speak,
child: Text('播放语音'),
),
ElevatedButton(
onPressed: stop,
child: Text('停止播放'),
),
],
),
),
);
}
}
3. 主要功能方法
speak(text)- 播放文本stop()- 停止播放setLanguage(language)- 设置语言setSpeechRate(rate)- 设置语速setVolume(volume)- 设置音量setPitch(pitch)- 设置音调
4. 常用语言代码
- 中文:
zh-CN、zh-TW - 英文:
en-US、en-GB - 日文:
ja-JP - 韩文:
ko-KR
5. 注意事项
- 需要在Android的AndroidManifest.xml中添加网络权限(如果需要在线语音)
- iOS需要在Info.plist中添加语音识别权限说明
- 不同设备对语言支持可能不同,建议测试目标语言是否可用
这样就完成了Flutter中文本转语音的基本实现。

