Go to file
2020-11-17 22:07:55 -06:00
.cargo Statically link MSVC runtime on Windows. 2020-10-08 10:40:36 -05:00
.github/workflows If removing quotes doesn't work, then I got nothing. 2020-11-17 22:07:55 -06:00
.vscode Add VSCode build task. 2020-06-18 15:58:02 -05:00
gradle/wrapper Switch to Gradle for builds. 2020-08-18 10:28:53 -05:00
libs Bump Android dependency to Godot 3.2.3. 2020-09-30 13:50:51 -05:00
src Eliminate Clippy warnings. 2020-11-17 19:43:57 -06:00
.gitattributes Switch to Gradle for builds. 2020-08-18 10:28:53 -05:00
.gitignore Update .gitignore. 2020-10-09 07:16:58 -05:00
build.gradle Changes necessary to get working on Android. 2020-08-18 17:23:05 -05:00
Cargo.toml Bump dependency. 2020-11-17 10:54:15 -06:00
godot-tts.gdap Changes necessary to get working on Android. 2020-08-18 17:23:05 -05:00
godot-tts.gdnlib Add dependencies to debug gdnlib so debug exports work. 2020-08-25 12:41:04 -05:00
godot-tts.gdnlib.release Reference separate UWP DLL. 2020-10-08 20:31:56 -05:00
godot-tts.gdns Fix another name inconsistency. 2019-09-13 10:03:13 -05:00
gradlew Switch to Gradle for builds. 2020-08-18 10:28:53 -05:00
gradlew.bat Switch to Gradle for builds. 2020-08-18 10:28:53 -05:00
LICENSE Add MIT license. 2018-06-13 12:19:07 +00:00
README.md Update instructions for Godot 3.2.3 Android custom template changes. 2020-10-14 10:37:50 -05:00
TTS.gd Fix Android initialization. 2020-10-14 13:15:03 -05:00

Godot TTS

This addon was primarily developed for the Godot Accessibility addon, but should work well in other contexts where a Godot game might require text-to-speech.

Supported Platforms

Text-to-speech is complicated, and some features may not work everywhere. Most optional features have an associated boolean property used to determine if the feature is available. Further, while I do attempt to ensure that this addon works as well as possible on all platforms, there may be bugs, and pull requests are welcome. Known supported platforms include:

  • Windows
    • Screen readers/SAPI via Tolk (requires use_tolk Cargo feature)
    • WinRT
  • Linux via Speech Dispatcher
  • MacOS
    • AppKit on MacOS 10.13 and below
    • AVFoundation on MacOS 10.14 and above, and iOS
  • Web

Features

Note that not all features are supported on all synthesizers. Any feature that may not be supported has a boolean property that can be checked to determine whether it works on the current platform.

  • Speaking text, with interruption support on most platforms
  • Stopping speech in progress
  • Getting and setting speech rate in both native synthesizer units and percentages
  • Detecting whether a screen reader is active
  • Determining whether the synthesizer is speaking, and sending a signal on completion

API

The public-facing API is contained entirely within TTS.GD.

Download

Download the latest release.

Notes on Android

Usage on Android is a bit more complicated:

  • Set up a custom Android build.
  • Create a directory reachable at res://android/plugins and place the godot-tts.aar and .godot-tts.gdap files from a release into that directory.
  • Update res://android/build/config.gradle to specify a minSdk of at least 21. Individual versions may vary, but minSdk is the critical value from this example:
ext.versions = [
    androidGradlePlugin: '3.5.3',
    compileSdk         : 29,
    minSdk             : 21,
    targetSdk          : 29,
    buildTools         : '29.0.3',
    supportCoreUtils   : '1.0.0',
    kotlinVersion      : '1.3.61',
    v4Support          : '1.0.0'

]

Notes on Universal Windows Platform

Godot's UWP export is currently broken. In order to use this addon in a UWP game, do the following:

  1. Export to UWP.
  2. Extract the newly-created .appx file with makeappx unpack.
  3. If you've extracted the .appx file to a directory like _mygame_, copy addons\godot-tts\target\release\godot_tts.dll to mygame\game\addons\godot-tts\target\release\godot_tts.dll, creating the directory if it doesn't exist.
  4. Repack the appx using makeappx.

It should then be ready to sign and install. Hopefully Godot's UWP export will eventually copy GDNative DLLs correctly so this procedure isn't necessary.