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

text_to_speech 封面
插件详情v0.2.3

text_to_speech

一个Flutter插件提供TTS(文本转语音)服务。

AndroidiOSWebmacOS
近 30 天下载
573
喜欢数
150
Pub 分数
150

安装插件

flutter pub add text_to_speech

插件介绍

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

一个 Flutter 插件,可在 Android、iOS、Web 和 macOS 上启用文本转语音(TTS)功能。它允许应用程序将文本转换为自然流畅的语音,支持可自定义设置的语音播放,如语言、音调和语速。非常适合用于无障碍功能、语音助手和互动学习应用。该插件与 Flutter 生态系统无缝集成,并在 GitHub 上维护,以支持社区贡献。

适合场景

  • 无障碍功能
  • 语音导航
  • 互动学习应用
  • 应用中的音频反馈
  • 阅读辅助工具

主要特点

  • 跨平台支持
  • 可自定义的语音参数
  • 简单 API 集成
  • 支持多种语言
  • 实时文本转换

适合对象

  • 开发无障碍应用程序的开发者
  • 教育类应用程序开发者
  • 语音助手集成
  • 需要音频反馈的应用程序

使用建议

  • 需要平台特定的权限
  • 某些平台上的语音选择有限
  • Web 支持可能因浏览器而异
  • 性能取决于设备的TTS引擎
  • 语言可用性取决于操作系统

原始 README

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

Text To Speech

A Flutter plugin provides TTS (Text-To-Speech) Service. This plugin aims to offer the most of TTS API feature from iOS, Android, web, and macOS.

screenshot.png

Getting Started

To use this plugin, add text_to_speech as a dependency in your pubspec.yaml file:

dependencies:  
  text_to_speech: ^0.2.3

Installation

Android
  • Minimum SDK version: 21
  • Applications targeting SDK 30 (Android 11) need to declare TextToSpeech.Engine.INTENT_ACTION_TTS_SERVICE in the queries elements of Android Manifest (See Android documentation).
<queries>  
  <intent>  
      <action android:name="android.intent.action.TTS_SERVICE" />  
  </intent>  
 </queries>  
iOS & macOS
  • iOS minimum version: 7.0
  • macOs minimum version 10.14

(See Apple documentation).

Features

Feature Android iOS Web macOS
speak :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
stop :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
pause - :white_check_mark: :white_check_mark: :white_check_mark:
resume - :white_check_mark: :white_check_mark: :white_check_mark:
set volume :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
set rate :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
set pitch :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
set language :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
get language :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
get voice :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:

Usages

To start, import the dependency in your code:

import 'package:text_to_speech/text_to_speech.dart';  

Then, create instance of TextToSpeech class:

TextToSpeech tts = TextToSpeech();  

Speak

String text = "Hello, Good Morning!";  
tts.speak(text);  

Set Volume

Volume range: 0-1 where 0 is silence, and 1 is the maximum volume (the default behavior).

double volume = 1.0;  
tts.setVolume(volume);  

Set Rate

Rate range: 0-2.
1.0 is the normal and default speech rate. Lower values slow down the speech (0.5 is half the normal speech rate). Greater values accelerate it (2.0 is twice the normal speech rate).

double rate = 1.0;  
tts.setRate(rate);  

Set Pitch

Pitch range: 0-2.
1.0 is the normal pitch, lower values lower the tone of the synthesized voice, greater values increase it.

double pitch = 1.0;  
tts.setPitch(pitch);  

Set Language

Accepting locale tag name of specific language, e.g. 'en-US'. You can retrieve list of supported language using getLanguage function.

String language = 'en-US';  
tts.setLanguage(language);  

Get Languages

Provide list of supported language codes in locale tag name format, e.g. 'en-US'. You can get display name for specific language code

String language = 'en-US';  
tts.setLanguage(language);  

Get Voice

We can get all available voices or get voices of specific language. This function will returns particular voice name.

List<String> voices = await tts.getVoices();  
  
String language = 'en-US';  
List<String> voices = await tts.getVoiceByLang(language);  

Native API Reference

  • Android TTS API: https://developer.android.com/reference/android/speech/tts/TextToSpeech
  • iOS/macOS AVSpeechSynthesizer API: https://developer.apple.com/documentation/avfaudio/avspeechsynthesizer
  • Web Speech API: https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#tts-section

Example

You can find example in the example folder and run it to check the implementation.
Move to example directory:

$ cd example  

Run Android / iOS

$ flutter run -d <device_name>  

Run Web

$ flutter run -d chrome  

Run macOS

$ flutter run -d macOS  

TODO

  • [ ] Utterance Status Listener
  • [ ] Linux Implementation
  • [ ] Windows Implementation

所属分类

依赖

依赖清单 3 项

  • text_to_speech_macos^0.1.1
  • text_to_speech_platform_interface^0.1.3
  • text_to_speech_web^0.1.2

源码仓库

使用此插件的项目