Voice (dictate, read aloud) and Draw a picture over /v1, with the app's models scope
The server kept voice and images on /v1 (models scope, which the app's token already asks for); /me's services and scopes decide what is offered. Rust sends the recording to /v1/audio/transcriptions, reads /v1/audio/speech back as a data: URL (CSP media-src data:), and for /v1/images/generations takes only the id of each of the person's own files from the answer and fetches /v1/files/<id>/content from the app's own server. The microphone is allowed only within seconds of the page's own Dictate (voice_arm); WebKitGTK's media stream is switched on through its settings getter. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
16 files changed
+1024
-4
No files matched your search
@@ -504,6 +504,22 @@ KEYS = (
|
||||
"Always allowed here",
|
||||
"Ask me about these again",
|
||||
"Nothing to switch in this chat.",
|
||||
# voice.js, draw.js: dictation, read aloud, and drawing a picture
|
||||
"Dictate a message",
|
||||
"Stop dictating",
|
||||
"Writing down…",
|
||||
"The microphone could not be opened: %(why)s",
|
||||
"Read this aloud",
|
||||
"The server's answer was not audio.",
|
||||
"Draw a picture",
|
||||
"What to draw…",
|
||||
"Shape",
|
||||
"Square",
|
||||
"Wide",
|
||||
"Tall",
|
||||
"Draw",
|
||||
"Drawing… a picture can take a minute or two.",
|
||||
"The server's answer had no picture in it.",
|
||||
)
|
||||
|
||||
# The app's own sentences. The mode names (Manual, Edit, Auto, Plan) stay English, as the
|
||||
@@ -761,6 +777,19 @@ OWN: dict[str, dict[str, str]] = {
|
||||
"Nothing remembered yet.": "Zatím si nic nepamatuje.",
|
||||
"Tools and skills…": "Nástroje a dovednosti…",
|
||||
"Nothing to switch in this chat.": "V této konverzaci není co přepnout.",
|
||||
"Stop dictating": "Zastavit diktování",
|
||||
"Writing down…": "Zapisuji…",
|
||||
"The microphone could not be opened: %(why)s": "Mikrofon se nepodařilo otevřít: %(why)s",
|
||||
"Read this aloud": "Přečíst nahlas",
|
||||
"The server's answer was not audio.": "Odpověď serveru nebyla zvuk.",
|
||||
"What to draw…": "Co nakreslit…",
|
||||
"Shape": "Tvar",
|
||||
"Square": "Čtverec",
|
||||
"Wide": "Široký",
|
||||
"Tall": "Vysoký",
|
||||
"Draw": "Nakreslit",
|
||||
"Drawing… a picture can take a minute or two.": "Kreslím… obrázek může trvat minutu nebo dvě.",
|
||||
"The server's answer had no picture in it.": "V odpovědi serveru nebyl žádný obrázek.",
|
||||
},
|
||||
"de": {
|
||||
"Sign in again: the server no longer accepts this app's sign-in.": "Melden Sie sich erneut an: Der Server nimmt die Anmeldung dieser App nicht mehr an.",
|
||||
@@ -1013,6 +1042,19 @@ OWN: dict[str, dict[str, str]] = {
|
||||
"Nothing remembered yet.": "Noch nichts behalten.",
|
||||
"Tools and skills…": "Werkzeuge und Fähigkeiten…",
|
||||
"Nothing to switch in this chat.": "In diesem Chat gibt es nichts umzuschalten.",
|
||||
"Stop dictating": "Diktieren beenden",
|
||||
"Writing down…": "Wird aufgeschrieben…",
|
||||
"The microphone could not be opened: %(why)s": "Das Mikrofon konnte nicht geöffnet werden: %(why)s",
|
||||
"Read this aloud": "Vorlesen",
|
||||
"The server's answer was not audio.": "Die Antwort des Servers war kein Audio.",
|
||||
"What to draw…": "Was gezeichnet werden soll…",
|
||||
"Shape": "Form",
|
||||
"Square": "Quadratisch",
|
||||
"Wide": "Breit",
|
||||
"Tall": "Hoch",
|
||||
"Draw": "Zeichnen",
|
||||
"Drawing… a picture can take a minute or two.": "Wird gezeichnet… ein Bild kann ein bis zwei Minuten dauern.",
|
||||
"The server's answer had no picture in it.": "Die Antwort des Servers enthielt kein Bild.",
|
||||
},
|
||||
"es": {
|
||||
"Sign in again: the server no longer accepts this app's sign-in.": "Vuelva a iniciar sesión: el servidor ya no acepta el inicio de sesión de esta aplicación.",
|
||||
@@ -1265,6 +1307,19 @@ OWN: dict[str, dict[str, str]] = {
|
||||
"Nothing remembered yet.": "Todavía no se recuerda nada.",
|
||||
"Tools and skills…": "Herramientas y habilidades…",
|
||||
"Nothing to switch in this chat.": "No hay nada que activar o desactivar en este chat.",
|
||||
"Stop dictating": "Dejar de dictar",
|
||||
"Writing down…": "Transcribiendo…",
|
||||
"The microphone could not be opened: %(why)s": "No se pudo abrir el micrófono: %(why)s",
|
||||
"Read this aloud": "Leer en voz alta",
|
||||
"The server's answer was not audio.": "La respuesta del servidor no era audio.",
|
||||
"What to draw…": "Qué dibujar…",
|
||||
"Shape": "Forma",
|
||||
"Square": "Cuadrada",
|
||||
"Wide": "Ancha",
|
||||
"Tall": "Alta",
|
||||
"Draw": "Dibujar",
|
||||
"Drawing… a picture can take a minute or two.": "Dibujando… una imagen puede tardar uno o dos minutos.",
|
||||
"The server's answer had no picture in it.": "La respuesta del servidor no traía ninguna imagen.",
|
||||
},
|
||||
"fr": {
|
||||
"Sign in again: the server no longer accepts this app's sign-in.": "Reconnectez-vous : le serveur n’accepte plus la connexion de cette application.",
|
||||
@@ -1517,6 +1572,19 @@ OWN: dict[str, dict[str, str]] = {
|
||||
"Nothing remembered yet.": "Rien n’est encore retenu.",
|
||||
"Tools and skills…": "Outils et compétences…",
|
||||
"Nothing to switch in this chat.": "Rien à activer ou désactiver dans cette conversation.",
|
||||
"Stop dictating": "Arrêter la dictée",
|
||||
"Writing down…": "Transcription…",
|
||||
"The microphone could not be opened: %(why)s": "Le micro n’a pas pu être ouvert : %(why)s",
|
||||
"Read this aloud": "Lire à voix haute",
|
||||
"The server's answer was not audio.": "La réponse du serveur n’était pas de l’audio.",
|
||||
"What to draw…": "Que dessiner…",
|
||||
"Shape": "Forme",
|
||||
"Square": "Carrée",
|
||||
"Wide": "Large",
|
||||
"Tall": "Haute",
|
||||
"Draw": "Dessiner",
|
||||
"Drawing… a picture can take a minute or two.": "Dessin en cours… une image peut prendre une minute ou deux.",
|
||||
"The server's answer had no picture in it.": "La réponse du serveur ne contenait aucune image.",
|
||||
},
|
||||
"hu": {
|
||||
"Sign in again: the server no longer accepts this app's sign-in.": "Jelentkezzen be újra: a szerver már nem fogadja el ennek az alkalmazásnak a bejelentkezését.",
|
||||
@@ -1769,6 +1837,19 @@ OWN: dict[str, dict[str, str]] = {
|
||||
"Nothing remembered yet.": "Még nincs megjegyezve semmi.",
|
||||
"Tools and skills…": "Eszközök és készségek…",
|
||||
"Nothing to switch in this chat.": "Ebben a beszélgetésben nincs mit átkapcsolni.",
|
||||
"Stop dictating": "Diktálás leállítása",
|
||||
"Writing down…": "Leírás…",
|
||||
"The microphone could not be opened: %(why)s": "A mikrofont nem sikerült megnyitni: %(why)s",
|
||||
"Read this aloud": "Felolvasás",
|
||||
"The server's answer was not audio.": "A szerver válasza nem hang volt.",
|
||||
"What to draw…": "Mit rajzoljon…",
|
||||
"Shape": "Forma",
|
||||
"Square": "Négyzet",
|
||||
"Wide": "Széles",
|
||||
"Tall": "Magas",
|
||||
"Draw": "Rajzolás",
|
||||
"Drawing… a picture can take a minute or two.": "Rajzolás… egy kép egy-két percig is eltarthat.",
|
||||
"The server's answer had no picture in it.": "A szerver válaszában nem volt kép.",
|
||||
},
|
||||
"it": {
|
||||
"Sign in again: the server no longer accepts this app's sign-in.": "Accedi di nuovo: il server non accetta più l’accesso di questa app.",
|
||||
@@ -2021,6 +2102,19 @@ OWN: dict[str, dict[str, str]] = {
|
||||
"Nothing remembered yet.": "Ancora niente da ricordare.",
|
||||
"Tools and skills…": "Strumenti e abilità…",
|
||||
"Nothing to switch in this chat.": "Non c’è niente da attivare o disattivare in questa chat.",
|
||||
"Stop dictating": "Interrompi la dettatura",
|
||||
"Writing down…": "Trascrizione…",
|
||||
"The microphone could not be opened: %(why)s": "Impossibile aprire il microfono: %(why)s",
|
||||
"Read this aloud": "Leggi ad alta voce",
|
||||
"The server's answer was not audio.": "La risposta del server non era audio.",
|
||||
"What to draw…": "Cosa disegnare…",
|
||||
"Shape": "Forma",
|
||||
"Square": "Quadrata",
|
||||
"Wide": "Larga",
|
||||
"Tall": "Alta",
|
||||
"Draw": "Disegna",
|
||||
"Drawing… a picture can take a minute or two.": "Disegno in corso… un’immagine può richiedere un minuto o due.",
|
||||
"The server's answer had no picture in it.": "La risposta del server non conteneva immagini.",
|
||||
},
|
||||
"pl": {
|
||||
"Sign in again: the server no longer accepts this app's sign-in.": "Zaloguj się ponownie: serwer nie przyjmuje już logowania tej aplikacji.",
|
||||
@@ -2273,6 +2367,19 @@ OWN: dict[str, dict[str, str]] = {
|
||||
"Nothing remembered yet.": "Na razie nic nie zapamiętano.",
|
||||
"Tools and skills…": "Narzędzia i umiejętności…",
|
||||
"Nothing to switch in this chat.": "W tym czacie nie ma czego przełączać.",
|
||||
"Stop dictating": "Zatrzymaj dyktowanie",
|
||||
"Writing down…": "Zapisywanie…",
|
||||
"The microphone could not be opened: %(why)s": "Nie udało się otworzyć mikrofonu: %(why)s",
|
||||
"Read this aloud": "Przeczytaj na głos",
|
||||
"The server's answer was not audio.": "Odpowiedź serwera nie była dźwiękiem.",
|
||||
"What to draw…": "Co narysować…",
|
||||
"Shape": "Kształt",
|
||||
"Square": "Kwadrat",
|
||||
"Wide": "Szeroki",
|
||||
"Tall": "Wysoki",
|
||||
"Draw": "Narysuj",
|
||||
"Drawing… a picture can take a minute or two.": "Rysowanie… obraz może zająć minutę lub dwie.",
|
||||
"The server's answer had no picture in it.": "W odpowiedzi serwera nie było obrazu.",
|
||||
},
|
||||
"sk": {
|
||||
"Sign in again: the server no longer accepts this app's sign-in.": "Prihláste sa znova: server už neprijíma prihlásenie tejto aplikácie.",
|
||||
@@ -2525,6 +2632,19 @@ OWN: dict[str, dict[str, str]] = {
|
||||
"Nothing remembered yet.": "Zatiaľ si nič nepamätá.",
|
||||
"Tools and skills…": "Nástroje a schopnosti…",
|
||||
"Nothing to switch in this chat.": "V tejto konverzácii nie je čo prepnúť.",
|
||||
"Stop dictating": "Zastaviť diktovanie",
|
||||
"Writing down…": "Zapisujem…",
|
||||
"The microphone could not be opened: %(why)s": "Mikrofón sa nepodarilo otvoriť: %(why)s",
|
||||
"Read this aloud": "Prečítať nahlas",
|
||||
"The server's answer was not audio.": "Odpoveď servera nebola zvuk.",
|
||||
"What to draw…": "Čo nakresliť…",
|
||||
"Shape": "Tvar",
|
||||
"Square": "Štvorec",
|
||||
"Wide": "Široký",
|
||||
"Tall": "Vysoký",
|
||||
"Draw": "Nakresliť",
|
||||
"Drawing… a picture can take a minute or two.": "Kreslím… obrázok môže trvať minútu alebo dve.",
|
||||
"The server's answer had no picture in it.": "V odpovedi servera nebol žiadny obrázok.",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user