open-standards/aac/aac-rs/tools/voices/phrases.json
Transaction Science d9e0f89b89
Some checks failed
standards workspaces build + test / jouleclaw-rs (push) Successful in 3m1s
standards workspaces build + test / aac-rs (push) Successful in 1m24s
standards workspaces build + test / joule-code-rs (push) Successful in 54s
standards workspaces build + test / joulecontract-rs (push) Successful in 59s
no-vanity-metrics / Scan committed Markdown for vanity metrics (push) Successful in 4s
standards workspaces build + test / map-rs (push) Successful in 1m8s
standards workspaces build + test / mesh-rs (push) Successful in 40s
standards workspaces build + test / eoc-rs (push) Successful in 1m49s
standards workspaces build + test / jcp-rs (push) Successful in 1m25s
standards workspaces build + test / openpay (push) Successful in 3m24s
standards workspaces build + test / proof-rs (push) Successful in 1m16s
standards workspaces build + test / sandbox-rs (push) Successful in 2m9s
standards workspaces build + test / smart-byte-rs (push) Successful in 2m36s
standards workspaces build + test / arl-rs (push) Has been cancelled
standards workspaces build + test / joule-ui-rs (push) Has been cancelled
standards workspaces build + test / jouledesk-rs (push) Has been cancelled
standards workspaces build + test / joulehook-rs (push) Has been cancelled
standards workspaces build + test / sense-rs (push) Has been cancelled
standards workspaces build + test / macOS energy backend (jcp-energy) (push) Has been cancelled
feat(aac voices): hear a voice before downloading it; ratings measured
A better voice is a 100 MB download, and the person could not hear
one before deciding. Making the samples showed something worse: some
voices did not say the words at all.

- Samples: each voice says a greeting and a request in its language
  (two or three seconds, MP3, about 10 KB). Settings > Better voices
  plays it with the sentence written beside it, before any download;
  checked by size and SHA-256 and played through the voices' own
  output. render_samples.mjs renders them with LAME; they are
  committed (Piper's synthesis is not repeatable), and build_voices.py
  publishes each beside the voices while it says the current text.
- Intelligibility: intelligibility.py has every voice say seven
  everyday phrases, a speech recognizer (Whisper large-v3-turbo on MLX)
  writes down what it hears, and the scores are committed. Ratings now
  come from that evidence (RATING_RULE): under 0.80 the voice is
  withheld; under 0.90, or any phrase under 0.60, experimental; 0.90
  and over clear; 0.95 and over with an upstream grade of A or B,
  natural.
- Withheld, because they say other words: German (the only German
  voice, 0.14), Dutch MLS (0.27), Ukrainian (0.18) and both Japanese
  voices (0.63-0.69: they misread 外, 好き and 疲れた). Their languages
  say so plainly under "Why". Portuguese and Hindi are experimental;
  Spanish, Chinese, Italian, Flemish and Cori are clear; Heart, Emma
  and Siwis natural. 16 voices in 8 languages, 452 MB of packs.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-30 20:20:25 -04:00

104 lines
3.3 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"about": "Everyday AAC phrases each voice must say intelligibly (tools/voices/intelligibility.py). Seven per language: a request, help, stop, yes, no, a feeling, a question.",
"phrases": {
"en": [
"I want more juice, please.",
"Help me, please.",
"Stop, I do not like that.",
"Yes, I would like to go outside.",
"No, thank you.",
"I am tired and I want to sleep.",
"Where is my mom?"
],
"es": [
"Quiero más jugo, por favor.",
"Ayúdame, por favor.",
"Para, no me gusta eso.",
"Sí, quiero salir afuera.",
"No, gracias.",
"Estoy cansado y quiero dormir.",
"¿Dónde está mi mamá?"
],
"fr": [
"Je veux encore du jus, s'il te plaît.",
"Aide-moi, s'il te plaît.",
"Arrête, je n'aime pas ça.",
"Oui, je veux aller dehors.",
"Non, merci.",
"Je suis fatigué et je veux dormir.",
"Où est ma maman ?"
],
"de": [
"Ich möchte mehr Saft, bitte.",
"Hilf mir, bitte.",
"Hör auf, das mag ich nicht.",
"Ja, ich möchte nach draußen gehen.",
"Nein, danke.",
"Ich bin müde und will schlafen.",
"Wo ist meine Mama?"
],
"pt": [
"Eu quero mais suco, por favor.",
"Me ajude, por favor.",
"Pare, eu não gosto disso.",
"Sim, eu quero ir lá fora.",
"Não, obrigado.",
"Estou cansado e quero dormir.",
"Onde está minha mãe?"
],
"it": [
"Voglio ancora del succo, per favore.",
"Aiutami, per favore.",
"Basta, non mi piace.",
"Sì, voglio andare fuori.",
"No, grazie.",
"Sono stanco e voglio dormire.",
"Dov'è la mia mamma?"
],
"nl": [
"Ik wil meer sap, alsjeblieft.",
"Help me, alsjeblieft.",
"Stop, dat vind ik niet leuk.",
"Ja, ik wil naar buiten.",
"Nee, dank je.",
"Ik ben moe en ik wil slapen.",
"Waar is mijn mama?"
],
"zh": [
"我想要更多果汁。",
"请帮帮我。",
"停下,我不喜欢这样。",
"是的,我想出去。",
"不用了,谢谢。",
"我累了,我想睡觉。",
"我妈妈在哪里?"
],
"ja": [
"もっとジュースがほしいです。",
"助けてください。",
"やめて、それは好きじゃない。",
"はい、外に行きたいです。",
"いいえ、けっこうです。",
"疲れたので寝たいです。",
"お母さんはどこですか?"
],
"hi": [
"मुझे और जूस चाहिए।",
"मेरी मदद करो।",
"रुको, मुझे यह पसंद नहीं है।",
"हाँ, मैं बाहर जाना चाहता हूँ।",
"नहीं, धन्यवाद।",
"मैं थक गया हूँ और सोना चाहता हूँ।",
"मेरी माँ कहाँ है?"
],
"uk": [
"Я хочу ще соку, будь ласка.",
"Допоможи мені, будь ласка.",
"Зупинись, мені це не подобається.",
"Так, я хочу вийти на вулицю.",
"Ні, дякую.",
"Я втомився і хочу спати.",
"Де моя мама?"
]
}
}