Enable isolated Remote speech and protect reading exports
Attach incoming software speech to reader sessions with lease checks, local output priority and isolated cancellation. Preserve every document fragment source for privacy checks and export reviewed browse current-line reading, spelling and phonetic output. Verified focused reading and Remote race tests, complete review and external Remote race suites, private relay integration, speech regressions, affected-package vet, reader build and Tentacles make check. Audible speech, physical input/Braille and live interoperability remain unverified.
This commit is contained in:
1 parent
ac67236eca
commit
49be8309fe
27 files changed
+986
-54
No files matched your search
@@ -25,6 +25,7 @@ type isolatedVoiceConnection struct {
|
||||
write sync.Mutex
|
||||
// The following fields belong to isolatedVoiceServer.mutex.
|
||||
module, pending string
|
||||
priority string
|
||||
notifications bool
|
||||
language, spelling, ssml string
|
||||
voiceType, synthesis string
|
||||
@@ -34,6 +35,7 @@ type isolatedVoiceUtterance struct {
|
||||
id int
|
||||
text, language, spelling, ssml string
|
||||
module, voiceType, synthesis string
|
||||
priority string
|
||||
}
|
||||
|
||||
func (connection *isolatedVoiceConnection) send(message string) {
|
||||
@@ -100,6 +102,8 @@ func isolated_voice_fixture(t *testing.T) (*configuredSpeaker, *isolatedVoiceSer
|
||||
response = "251-" + connection.module + "\r\n251 OK\r\n"
|
||||
case command == "GET VOICE_TYPE":
|
||||
response = "251-" + connection.voiceType + "\r\n251 OK\r\n"
|
||||
case strings.HasPrefix(command, "SET SELF PRIORITY "):
|
||||
connection.priority = strings.TrimPrefix(command, "SET SELF PRIORITY ")
|
||||
case strings.HasPrefix(command, "SET SELF LANGUAGE "):
|
||||
connection.language = strings.TrimPrefix(command, "SET SELF LANGUAGE ")
|
||||
// Server LanguageDefaultModule mappings must not silently
|
||||
@@ -161,7 +165,7 @@ func isolated_voice_fixture(t *testing.T) (*configuredSpeaker, *isolatedVoiceSer
|
||||
}
|
||||
server.mutex.Lock()
|
||||
connection.pending = strings.Join(lines, "\n")
|
||||
queued = &isolatedVoiceUtterance{id: id, text: connection.pending, language: connection.language, spelling: connection.spelling, ssml: connection.ssml, module: connection.module, voiceType: connection.voiceType, synthesis: connection.synthesis}
|
||||
queued = &isolatedVoiceUtterance{id: id, text: connection.pending, language: connection.language, spelling: connection.spelling, ssml: connection.ssml, module: connection.module, voiceType: connection.voiceType, synthesis: connection.synthesis, priority: connection.priority}
|
||||
response = "230 OK\r\n225 QUEUED\r\n"
|
||||
if connection.notifications {
|
||||
response += fmt.Sprintf("701-1\r\n701-%d\r\n701 BEGIN\r\n", id)
|
||||
|
||||
Reference in new issue
Block a user