Flutter中如何使用flutter_tts: ^4.2.3实现语音合成
在Flutter项目中集成了flutter_tts: ^4.2.3插件,但遇到几个问题想请教:
- 初始化时报PlatformException错误,如何正确配置Android/iOS的权限?
- 调用speak()方法时部分中文文本无法合成,是否需要特殊编码处理?
- 如何动态调整语速和音调?文档中的setSpeechRate似乎不生效。
- 播放过程中突然中断(如来电),如何实现自动恢复播放?
 环境:Flutter 3.19,插件版本严格锁定4.2.3。希望能提供关键代码示例和常见坑的解决方案。
        
          2 回复
        
      
      
        在Flutter中使用flutter_tts 4.2.3实现语音合成:
- 添加依赖到pubspec.yaml:
dependencies:
  flutter_tts: ^4.2.3
- 基本使用:
final flutterTts = FlutterTts();
await flutterTts.setLanguage("zh-CN");
await flutterTts.speak("你好,世界");
- 常用方法:
- setLanguage() 设置语言
- setSpeechRate() 设置语速
- setVolume() 设置音量
- stop() 停止播放
记得在AndroidManifest.xml中添加网络权限(如果需要在线合成)。
更多关于Flutter中如何使用flutter_tts: ^4.2.3实现语音合成的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中使用flutter_tts: ^4.2.3实现语音合成,步骤如下:
1. 添加依赖
在 pubspec.yaml 文件中添加:
dependencies:
  flutter_tts: ^4.2.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> {
  final FlutterTts flutterTts = FlutterTts();
  String text = "你好,这是一个语音合成示例";
  @override
  void initState() {
    super.initState();
    _initTts();
  }
  // 初始化TTS设置
  _initTts() async {
    await flutterTts.setLanguage("zh-CN"); // 设置中文
    await flutterTts.setSpeechRate(0.5);   // 语速 0.0~1.0
    await flutterTts.setVolume(1.0);       // 音量 0.0~1.0
    await flutterTts.setPitch(1.0);        // 音调 0.5~2.0
  }
  // 语音合成
  _speak() async {
    await flutterTts.speak(text);
  }
  // 停止播放
  _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: [
            TextField(
              onChanged: (value) => text = value,
              decoration: InputDecoration(
                hintText: "请输入要合成的文本",
                border: OutlineInputBorder(),
              ),
            ),
            SizedBox(height: 20),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                ElevatedButton(
                  onPressed: _speak,
                  child: Text('播放'),
                ),
                SizedBox(width: 20),
                ElevatedButton(
                  onPressed: _stop,
                  child: Text('停止'),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}
3. 关键功能说明
- 语言设置:使用 setLanguage()方法,支持多种语言代码(如 “en-US”、“zh-CN”)
- 语速控制:setSpeechRate()范围 0.0~1.0
- 音量调节:setVolume()范围 0.0~1.0
- 音调调整:setPitch()范围 0.5~2.0
4. 平台权限配置
Android:在 AndroidManifest.xml 中添加网络权限(部分语音引擎需要):
<uses-permission android:name="android.permission.INTERNET"/>
iOS:在 Info.plist 中添加语音识别权限:
<key>NSSpeechRecognitionUsageDescription</key>
<string>需要语音合成功能</string>
5. 其他常用方法
// 获取可用语言列表
List<dynamic> languages = await flutterTts.getLanguages;
// 监听播放完成
flutterTts.setCompletionHandler(() {
  print("播放完成");
});
// 设置语音引擎(Android)
await flutterTts.setEngine("com.google.android.tts");
这样就完成了基本的语音合成功能实现。
 
        
       
             
             
            

