搜索插件、代码仓与 APP 分类

插件详情v1.0.3

flutter_tts_improved

Flutter_TTS 插件的分支版本,同时在 Android 和 iOS 上使用 Utterance API 的进度报告器。

近 30 天下载
43
喜欢数
21
Pub 分数
40

安装插件

flutter pub add flutter_tts_improved

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

Flutter_TTS_Improved 是原始 Flutter_TTS 插件的分支,通过在 Android 和 iOS 上集成 Utterance API 的进度报告,增强了文本转语音功能。它使开发者能够实时跟踪语音合成进度,从而提升语音驱动应用的用户体验。该包保持与原始版本的兼容性,同时为每个语句添加了细粒度反馈,例如开始、结束和错误事件。非常适合需要精确时间控制的交互式语音助手、有声读物或辅助工具。

适合场景

  • 实时语音进度跟踪
  • 应用中的无障碍功能
  • 交互式语音助手
  • 有声读物播放
  • 教育类语言学习应用

主要特点

  • 通过 Utterance API 进行进度报告
  • 跨平台支持(Android 和 iOS)
  • 实时事件回调
  • 对语音合成的增强控制
  • 与 Flutter_TTS 兼容

适合对象

  • 开发语音功能应用的开发者
  • 需要精确语音时间的应用
  • 注重可访问性的应用程序
  • 交互式教程和学习工具

使用建议

  • 需要原生平台配置
  • 仅限支持语音合成 API 的平台
  • 某些设备可能需要额外的权限
  • 取决于底层操作系统语音引擎的稳定性

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Flutter Text To Speech Improved

The flutter_tts plugin (https://github.com/dlutton/flutter_tts) is GREAT! Thanks @dlutton for all your hard work on getting it up and running. Now it is time to improve it by allowing for the Utterances API to report the 'progress' of the speech of the Utterance. This is relatively new for Android, only introduced in Android 26. It has been around on iOS for quite some time though, back around iOS 7.0.

My goal with this plugin is to allow everyone in flutter to track where the speech is currently at. This can be used to print words on the screen as they are spoken, highlight words of a paragraph as they are uttered, for timing how long each word takes to say at a given speed, or really any other weird reason you may need it. This API is powerful, and I know people are asking for it, and there is simply not a plugin yet that covers it. Surprise! Now there is. You are welcome.

Features

  • [x] Android & iOS
    • [x] speak
    • [x] stop
    • [x] get languages
    • [x] set language
    • [x] is language available
    • [x] set speech rate
    • [x] set speech volume
    • [x] set speech pitch
    • [x] get voices
    • [x] set voice
    • [x] #NEW track what word is currently being said (on all iOS 7+ and Android 26+)
  • [x] Android
    • [x] set Silence

Usage

Android

Change the minimum Android sdk version to 21 (or higher) in your android/app/build.gradle file.

minSdkVersion 21

iOS

There's a known issue with integrating plugins that use Swift into a Flutter project created with the Objective-C template. Flutter#16049

Example

To use this plugin :

  dependencies:
    flutter:
      sdk: flutter
    flutter_tts_improved:
  • instantiate a FlutterTtsImproved instance
FlutterTtsImproved tts = new FlutterTtsImproved();
speak, stop, getLanguages, setLanguage, setSpeechRate, setVolume, setPitch, isLanguageAvailable
Future _speak() async{
    var result = await tts.speak("Hello World");
    if (result == 1) setState(() => ttsState = TtsState.playing);
}

Future _stop() async{
    var result = await tts.stop();
    if (result == 1) setState(() => ttsState = TtsState.stopped);
}

List<dynamic> languages = await tts.getLanguages;

await tts.setLanguage("en-US");

await tts.setSpeechRate(1.0);

await tts.setVolume(1.0);

await tts.setPitch(1.0);

await tts.isLanguageAvailable("en-US");
Listening for platform calls
// #NEW
tts.setProgressHandler((String fullPhrase, int wordOffset, int endOfWordOffset, String currentWord) {
  setState(() {
    _wordToDisplay = currentWord;
  });
});

tts.setStartHandler(() {
  setState(() {
    ttsState = TtsState.playing;
  });
});

tts.setCompletionHandler(() {
  setState(() {
    ttsState = TtsState.stopped;
  });
});

tts.setErrorHandler((msg) {
  setState(() {
    ttsState = TtsState.stopped;
  });
});

Getting Started

For help getting started with Flutter, view our online documentation.

For help on editing plugin code, view the documentation.

所属分类

源码仓库

使用此插件的项目

暂无相关数据。