Purple Control Center
Purple Manager
Configure TTS
30 min
overview the purple manager supports text to speech (tts) functionality using amazon polly, allowing your publications to provide audio narration of content tts configuration can be set at multiple levels with automatic fallback to ensure your publications always have the appropriate settings important tts must be explicitly enabled at the publication level for any tts configuration to be used this is controlled by the "tts enabled" checkbox or the ttsenabled custom property for legacy publications configuration levels tts configuration supports a hierarchical fallback system tts must first be enabled at the publication level , then configurations are checked in the following order publication level (highest priority) checked if tts is enabled custom properties (publication specific) used as fallback if tts is enabled team level (lowest priority) used as final fallback if tts is enabled when to use each level tts enabled flag required must be set to true at publication level for any tts to work publication level configuration use when a specific publication requires unique tts settings (e g , different voice, language, or sampling rate) custom properties publication specific overrides that take precedence over team defaults useful for gradual migration or publication specific tweaks (including ttsenabled flag) team level configuration use for default tts settings that apply to all tts enabled publications within a team (lowest priority) configuration options core settings true 165,165,165,166left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type advanced settings true 165,165,165,166left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type left transparent transparent unhandled content type configuring tts at publication level enabling tts for a publication navigate to the publication you want to configure click the "configure tts" button (visible to editors and above) check the "tts enabled" checkbox configure the desired settings (see sections below) click save configuration dialog the tts configuration dialog displays current publication level settings (if any) inherited values from the team (shown as defaults) all configuration options note if you leave a field empty, the publication will automatically inherit values in this order custom properties → team level example publication specific voice use case you have an english team default but want to publish a german publication with a german voice open the publication click "configure tts" enable tts for the publication set language code de de set voices hans,marlene leave other fields empty to inherit from team save configuring tts at team level setting team defaults navigate to the team settings go to the tts configuration section configure the default settings for all publications click save all publications in this team will automatically inherit these settings unless they have their own publication level configuration example team wide defaults bucket key prefix tts/mycompany/sample rate 22050voices joannalanguage code en usdelay 500read title trueignore advertisement truestore key only false how configuration resolution works when a publication is published or processed, the system resolves tts configuration following these steps step 1 check if tts is enabled first and foremost , the system checks if tts is enabled for the publication checks the "tts enabled" checkbox on the publication or checks for custom property ttsenabled=true (for backward compatibility) if tts is not enabled, processing stops here and no tts is generated, regardless of any configuration present step 2 resolve configuration (only if tts is enabled) if tts is enabled, the system looks for configuration in this order 2 1 publication level configuration if the publication has configuration values set these values take highest priority 2 2 custom properties (publication specific) checks for custom properties on the publication takes precedence over team configuration useful for publication specific overrides 2 3 team level configuration if no publication level or custom property configuration exists uses the team default values lowest priority in the fallback chain 2 4 no configuration found if tts is enabled but no configuration is found at any level, tts generation may fail ensure at least team level defaults are configured configuration examples scenario 1 complete override team settings voices joannalanguage code en ussample rate 22050 publication settings (tts enabled) voices matthewlanguage code en gbsample rate 16000 result publication uses matthew voice with en gb language and 16000 sample rate scenario 2 partial override with inheritance team settings voices joannalanguage code en ussample rate 22050delay 500read title true publication settings (tts enabled) voices matthewlanguage code (empty inherits)sample rate (empty inherits)delay 300 result publication uses voices matthew (publication override) language code en us (inherited from team) sample rate 22050 (inherited from team) delay 300 (publication override) read title true (inherited from team) scenario 3 team defaults only team settings voices joanna,matthewlanguage code en ussample rate 22050 publication settings tts enabled true(no publication level configuration) result publication uses all team defaults scenario 3b tts disabled team settings voices joanna,matthewlanguage code en ussample rate 22050 publication settings tts enabled false (or unchecked) result no tts is generated , even though team has configuration tts must be explicitly enabled at the publication level scenario 4 custom properties override team team settings voices joannalanguage code en ussample rate 22050 publication settings tts enabled true(no publication level configuration) custom properties awspollyvoices matthewawspollylanguagecode en gb result publication uses custom properties (matthew, en gb) which override team settings sample rate is inherited from team (22050) since no custom property exists for it custom properties take precedence over team configuration scenario 5 legacy custom properties only team settings (none) publication settings (none using custom properties only) custom properties ttsenabled trueawspollyvoices joannaawspollylanguagecode en usawspollysamplerate 22050 result publication uses custom property values exclusively note that ttsenabled custom property is also required permissions view tts configuration all users with publication access edit tts configuration editors and above configure team tts team administrators best practices 1\ set team defaults first configure sensible defaults at the team level before creating publications this ensures consistency and reduces configuration overhead team defaults serve as the fallback when publications don't have specific configuration 2\ override only when necessary only set publication level configuration (or custom properties) when the publication genuinely needs different settings this makes maintenance easier remember that custom properties override team settings 3\ test with sample content before publishing, test tts configuration with sample content to ensure correct voice selection appropriate audio quality (sample rate) proper language processing expected delay between elements 4\ document special configurations if a publication has custom tts settings, document why it differs from the team default 5\ use consistent voice sets when specifying multiple voices, ensure they're appropriate for the content language and style troubleshooting tts not generating check is tts enabled at the publication level? this is the most common issue check the "tts enabled" checkbox in publication settings or check for ttsenabled=true custom property (legacy) tts will not generate without this flag, even if configuration exists are all required fields configured (either at publication or team level)? is the publication published? tts generation happens during publishing check logs for configuration resolution messages (look for "tts is not enabled" message) wrong voice or language check publication level settings (highest priority) custom properties (these override team settings) team level settings (lowest priority) verify voice id matches amazon polly voice names audio quality issues check sample rate setting (22050 recommended for most content) voice selection (some voices have different quality profiles) network/s3 upload settings migration from custom properties if you're currently using custom properties for tts configuration recommended migration path document current settings note all custom property values configure at team level set team defaults matching current properties test verify publications generate correctly with team settings identify exceptions note publications with custom properties that differ from team defaults migrate exceptions for common patterns update team defaults for publication specific needs convert to publication level configuration clean up remove custom properties once migrated to publication or team configuration automatic compatibility the system automatically reads custom properties, and custom properties take precedence over team settings , so you can migrate gradually old publications continue working with custom properties (which override team settings) new publications can use team/publication configuration no immediate action required custom properties provide publication specific overrides without using the configuration dialog api integration publishing with resolved configuration when a publication is published via the content gateway, the fully resolved tts configuration is included in the publication data the system automatically resolves configuration using the fallback hierarchy validates all required fields are present includes the configuration in the pollyconfig object sends to the content gateway for processing rest endpoints get publication tts configuration get /publication/ttsconfig?id={publicationid} update publication tts configuration post /publication/ttsconfig?id={publicationid} frequently asked questions q what happens if i disable tts on a publication that previously had it enabled? a tts generation will stop immediately the configuration remains saved but will not be used to re enable, simply check the "tts enabled" checkbox again q can i test tts configuration before publishing? a currently, tts generation happens during the publishing process test with a development/staging publication first q how do i know which configuration level is being used? a check the application logs during publishing the system logs which configuration level was selected (publication, custom properties, or team) q can different issues within a publication have different tts settings? a no, tts configuration is set at the publication level and applies to all issues within that publication q what's the difference between "tts enabled" and having tts configuration? a "tts enabled" is a required publication level flag that controls whether tts is generated at all having tts configuration (at publication or team level) defines how tts is generated both are needed tts enabled = on required for any tts generation tts configuration defines voice, language, quality, etc without "tts enabled" checked, no tts will be generated regardless of configuration q are custom properties still supported? a yes, fully supported! both the ttsenabled flag and tts configuration properties work via custom properties custom properties take precedence over team settings , making them useful for publication specific overrides however, we recommend using publication level configuration (via the ui) for better visibility and management q if i have team level tts configuration, do i still need to enable tts on each publication? a yes! the "tts enabled" flag must be checked on each publication where you want tts generated team configuration provides the defaults for how tts is generated, but each publication must opt in by enabling tts support for additional help or questions check application logs for detailed configuration resolution contact your system administrator review the technical documentation in the codebase