Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,135 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Download count

TextToTalk

Chat TTS plugin for 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.

Direct links to information will be added here eventually.

Supported TTS providers

  • System (Windows)
  • Megaphone
  • Websocket
  • AWS Polly
  • Azure (Microsoft Cognitive Services)
  • Google Cloud
  • ElevenLabs
  • OpenAI
  • Fish Audio
  • Kokoro
  • Uberduck

WebSocket interfacing

TextToTalk can optionally open a WebSocket server to serve messages over. There are currently three JSON-format messages that can be sent (see IpcMessage):

TTS prompt:

{
  "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,
  // "Hyur", "Elezen", "Lalafell", "Miqo'te", "Roegadyn", "Au Ra", "Hrothgar", "Viera", or null
  "Race": null,
  // "Unknown", "Youth", "Adult", "Elder", or null
  "BodyType": null,
  // "None", "Male", "Female", or null
  "Gender": null,
  // Refer to https://dalamud.dev/api/Dalamud.Game.Text/Enums/XivChatType
  "ChatType": 10,
  // Refer to https://dalamud.dev/api/Dalamud/Enums/ClientLanguage
  "Language": "English",
  // Game voice volume level (0.0-1.0)
  "Volume": 1.0
}

TTS cancel:

{
  "Type": "Cancel",
  "Payload": "",
  "PayloadTemplate": "",
  "Voice": null,
  "Speaker": null,
  // or "Chat", "AddonTalk", or "AddonBattleTalk"
  "Source": "None",
  "StuttersRemoved": false,
  "NpcId": null,
  "ChatType": null,
  "Language": null
}

Dialogue event:

{
  "Type": "Event",
  // or "Chat", "AddonTalk", or "AddonBattleTalk"
  "Source": "AddonTalk",
  // "NpcDialogueSessionStarted" or "NpcDialogueSessionEnded"
  "EventType": "NpcDialogueSessionStarted",
  // Unique identifier for the session
  "EventSessionId": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
  // Reason for the event: "TextReceived", "AddonShown", "DialogueContextEnded",
  // "TerritoryChanged", "LoggedOut", or "PluginStopped"
  "EventReason": "TextReceived"
}

A dialogue session starts when NPC or battle dialogue text arrives (or the Talk/BattleTalk addon becomes visible) and ends when all dialogue signals are absent for 3 consecutive frames, or immediately on territory change/logout/plugin shutdown.

Screenshots

image image image image image image image

Development

Refer to the wiki for dev documentation.

About

Chat TTS plugin for Dalamud. Has support for triggers/exclusions, several TTS providers, and more!

Topics

Resources

Contributing

Stars

72 stars

Watchers

4 watching

Forks

Contributors

Languages