Text to Speech page: Speak Text section with voice menu and markup guide - #64
Merged
Merged
Conversation
A new section at the bottom of the web UI's Text to Speech page: a text
box (prefilled with an SSML example), a Voice menu of installed voices
("Default voice" = the Text to Speech voice setting), and a Speak button
that speaks the text once through the live pipeline. Text starting with
<speak is passed to PCMSpeechSynth with --ssml, the same rule
StationDirector uses; plain text with --ssml renders nothing, and SSML
without it has its tags read aloud.
Below it, a collapsible guide to the two markup methods: SSML for modern
voices (with what was measured to work with the Premium Ava voice) and
[[...]] embedded commands for classic voices.
SDRController: the launch half of startTextToSpeech moves into
startSpeechSynthPipeline, shared with the new speakText(_:voiceIdentifier:).
Route: POST /speaktextbuttonclicked.html {text, voice}.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A new Speak Text section at the bottom of the web UI's Text to Speech page (Devices):
<speak>It is four oh nine <break time="700ms"/> <prosody rate="80%">on AntennaHead Radio.</prosody></speak>.prosodyrate and volume,break,say-as charactersandphonemework;prosody pitchbarely changes anything;emphasisandsubare ignored.[[slnc]],[[rate]],[[pbas]]and[[pmod]]embedded commands for classic voices.How
<speakis sent with--ssml. That's the same rule StationDirector's announcer uses, and the rule is needed. In tests with file input:--ssml: 3.84 s, with the pause and the slower ending.--ssml: no audio at all.--ssml: 10.8 s, because the tags are read aloud.SDRController: the launch half ofstartTextToSpeechmoved intostartSpeechSynthPipeline(text:repeatForever:voiceIdentifier:ssml:dying:), which the newspeakText(_:voiceIdentifier:)shares.makeSpeechSynthTaskItemaccepts an optional voice and SSML flag. Existing folder behavior is unchanged: same voice setting, no--ssml.POST /speaktextbuttonclicked.htmlwith body{text, voice}.antennahead.js:speakTextButtonClicked(form).Verification
node --checkpasses onantennahead.js.--ssmlas described above.🤖 Generated with Claude Code