https://github.com/karashiiro/texttotalk
Chat TTS plugin for Dalamud. Has support for triggers/exclusions, several TTS providers, and more!
https://github.com/karashiiro/texttotalk
dalamud-plugin ffxiv microsoft-cognitive-services polly-voice triggers tts uberduck-ai websocket
Last synced: 9 months ago
JSON representation
Chat TTS plugin for Dalamud. Has support for triggers/exclusions, several TTS providers, and more!
- Host: GitHub
- URL: https://github.com/karashiiro/texttotalk
- Owner: karashiiro
- License: mit
- Created: 2020-10-09T22:08:37.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-08-08T02:04:15.000Z (10 months ago)
- Last Synced: 2025-08-08T04:10:39.172Z (10 months ago)
- Topics: dalamud-plugin, ffxiv, microsoft-cognitive-services, polly-voice, triggers, tts, uberduck-ai, websocket
- Language: C#
- Homepage:
- Size: 2.16 MB
- Stars: 57
- Watchers: 4
- Forks: 31
- Open Issues: 67
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/karashiiro/TextToTalk)
# TextToTalk
Chat TTS plugin for [Dalamud](https://github.com/goatcorp/Dalamud). Has support for triggers/exclusions, several TTS providers, and more!
## Commands
* `/tttconfig`: Opens the configuration window.
* `/canceltts`: Cancel all queued TTS messages.
* `/toggletts`: Turns TTS on or off.
* `/disabletts`: Turns TTS off.
* `/enabletts`: Turns TTS on.
## Lexicons
TextToTalk supports custom lexicons to modify how words are pronounced. For more information, please join our [community lexicons discussion](https://github.com/karashiiro/TextToTalk/discussions/62).
Direct links to information will be added here eventually.
## Supported TTS providers
* System (Windows)
* AWS Polly
* Azure (Microsoft Cognitive Services)
* Uberduck
* Websocket
## WebSocket interfacing
TextToTalk can optionally open a WebSocket server to serve messages over.
There are currently two JSON-format messages that can be sent (see
[`IpcMessage`](https://github.com/karashiiro/TextToTalk/blob/main/src/TextToTalk/Backends/Websocket/IpcMessage.cs)):
TTS prompt:
```json5
{
"Type": "Say",
"Payload": "Firstname Lastname says something",
// Will replace the logged-in player's name with {{FULL_NAME}}, {{FIRST_NAME}}, or {{LAST_NAME}} as appropriate.
// Does not currently apply to players other than the logged-in player.
"PayloadTemplate": "{{FULL_NAME}} says something",
"Voice": {
"Name": "Gender"
},
"Speaker": "Firstname Lastname",
// or "AddonTalk", or "AddonBattleTalk"
"Source": "Chat",
"StuttersRemoved": false,
// or null, for non-NPCs
"NpcId": 1000115,
// Refer to https://dalamud.dev/api/Dalamud.Game.Text/Enums/XivChatType
"ChatType": 10,
// Refer to https://dalamud.dev/api/Dalamud/Enums/ClientLanguage
"Language": "English"
}
```
TTS cancel:
```json5
{
"Type": "Cancel",
"Payload": "",
"PayloadTemplate": "",
"Voice": null,
"Speaker": null,
// or "Chat", "AddonTalk", or "AddonBattleTalk"
"Source": "None",
"StuttersRemoved": false,
"NpcId": null,
"ChatType": null,
"Language": null
}
```
## Screenshots







## Development
Refer to the [wiki](https://github.com/karashiiro/TextToTalk/wiki/Development) for dev documentation.