flutter_tts_ohos

Pub Version

flutter_tts 的鸿蒙(OpenHarmony)化实现

这是 flutter_tts 插件的鸿蒙化适配版本,为 OpenHarmony 平台提供文本转语音(TTS)功能。

功能介绍

基于 HarmonyOS CoreSpeechKit 的 textToSpeech 模块实现文本转语音功能,支持中文和英文语音合成与播放。

使用方法

安装

pubspec.yaml 中添加依赖:

dependencies:
  flutter_tts: ^4.2.5           # 原插件,提供 API 接口
  flutter_tts_ohos: ^4.2.5      # 鸿蒙化实现

示例代码

import 'package:flutter_tts/flutter_tts.dart';

FlutterTts flutterTts = FlutterTts();

// 朗读文本
await flutterTts.speak('Hello, World!');

// 设置语言
await flutterTts.setLanguage('zh-CN');

// 设置语速
await flutterTts.setSpeechRate(0.8);

// 设置音量
await flutterTts.setVolume(1.0);

// 设置音调
await flutterTts.setPitch(1.0);

// 停止朗读
await flutterTts.stop();

注意:调用代码与原插件完全一致,无需修改现有代码。

示例

cd example
flutter run

技术实现

鸿蒙端实现

鸿蒙端的实现基于 @ohos/flutter_ohos Flutter Plugin API 和 @kit.CoreSpeechKit,主要涉及:

  • FlutterPlugin:插件主接口
  • MethodCallHandler:处理方法调用
  • AbilityAware:感知 Ability 生命周期
  • textToSpeech.TextToSpeechEngine:鸿蒙原生 TTS 引擎

Method Channel

插件使用名为 flutter_tts 的 Method Channel 进行 Dart 与鸿蒙原生代码的通信,与原插件保持一致。

支持的方法:

方法名 说明
speak 朗读指定文本
stop 停止朗读
pause 暂停(映射为 stop)
setLanguage 设置语言(如 zh-CN, en-US)
setSpeechRate 设置语速(0.5-2.0)
setVolume 设置音量(0.0-2.0)
setPitch 设置音调(0.5-2.0)
setVoice 设置特定语音
clearVoice 清除语音设置,恢复默认
getLanguages 获取支持的语音列表
getVoices 获取语音列表
isLanguageAvailable 检查语言是否可用
getSpeechRateValidRange 获取语速有效范围
awaitSpeakCompletion 设置是否等待朗读完成
setQueueMode 设置队列模式
getMaxSpeechInputLength 获取最大输入长度

注意事项

  1. 鸿蒙 TTS 默认离线模式,需要设备已下载对应语言的语音包。
  2. pause 方法在鸿蒙 TTS 中映射为 stop,因为 CoreSpeechKit 不支持原生暂停。
  3. synthesizeToFile 方法在鸿蒙平台暂未实现。
  4. iOS 特有方法(如 setIosAudioCategorysetSharedInstance)在鸿蒙平台为 no-op。
  5. Android 特有方法(如 setEnginesetSilencesetQueueMode 等)在鸿蒙平台为 no-op 或简化实现。

参考链接

许可证

MIT License

Libraries

flutter_tts_ohos