godot-tts/README.md

72 lines
3.4 KiB
Markdown
Raw Permalink Normal View History

2020-05-19 15:00:37 +00:00
# Godot TTS
This addon was primarily developed for the [Godot Accessibility addon](https://github.com/lightsoutgames/godot-accessibility), 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)
2020-09-02 17:26:28 +00:00
* WinRT
2020-05-19 15:00:37 +00:00
* Linux via [Speech Dispatcher](https://freebsoft.org/speechd)
2020-09-02 17:26:28 +00:00
* MacOS
* AppKit on MacOS 10.13 and below
* AVFoundation on MacOS 10.14 and above, and iOS
* Web
2020-05-19 15:00:37 +00:00
## Features
2020-06-15 01:19:50 +00:00
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.
2020-05-19 15:00:37 +00:00
* 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
2020-06-15 01:19:50 +00:00
* Determining whether the synthesizer is speaking, and sending a signal on completion
2020-05-19 15:00:37 +00:00
## API
2020-05-19 15:01:50 +00:00
The public-facing API is contained entirely within [TTS.GD](https://github.com/lightsoutgames/godot-tts/blob/master/TTS.gd).
2020-05-19 15:00:37 +00:00
## Download
2020-06-15 01:19:50 +00:00
Download the [latest release](https://github.com/lightsoutgames/godot-tts/releases).
2020-11-21 09:21:33 +00:00
## Usage
Inside your projects root folder create a new folder named _addons_. Then extract _godot-tts.zip_ into that folder. After attaching TTS.GD to a node you can make calls to the API.
2020-09-02 17:26:28 +00:00
## Notes on Android
Usage on Android is a bit more complicated:
* Set up a [custom Android build](https://docs.godotengine.org/en/latest/getting_started/workflow/export/android_custom_build.html).
* 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:
2020-09-02 17:26:28 +00:00
```
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'
]
2020-09-02 17:26:28 +00:00
```
2020-06-15 01:19:50 +00:00
## Notes on Universal Windows Platform
Godot's UWP export is [currently broken](https://github.com/godotengine/godot/issues/30558). In order to use this addon in a UWP game, do the following:
1. [Export to UWP](https://docs.godotengine.org/en/stable/getting_started/workflow/export/exporting_for_uwp.html).
2. [Extract the newly-created .appx file with `makeappx unpack`](https://docs.microsoft.com/en-us/windows/msix/package/create-app-package-with-makeappx-tool).
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.