@gentbajko/slopify 4.1.0 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SUBTITLES.md +2 -0
- package/dist/adapters/alignment/protocol.js +1 -0
- package/dist/adapters/alignment/window.js +29 -5
- package/dist/edge/http/app.js +2 -0
- package/dist/edge/http/pronunciation-check.js +138 -0
- package/dist/edge/http/pronunciations.js +26 -0
- package/dist/edge/mcp/tools-library.js +24 -0
- package/dist/extension/slopify-studio-chrome.zip +0 -0
- package/dist/extension/slopify-studio-firefox.zip +0 -0
- package/dist/patch-notes/4.2.0.md +28 -0
- package/dist/patch-notes/4.3.0.md +21 -0
- package/dist/patch-notes/index.json +12 -0
- package/dist/slices/admission/schema.js +2 -0
- package/dist/slices/admission/start.js +7 -0
- package/dist/slices/assistant/gate.js +1 -0
- package/dist/slices/narration/pronunciation-check.js +318 -0
- package/dist/slices/narration/pronunciation.js +4 -0
- package/dist/slices/narration/pronunciations-library.js +94 -0
- package/dist/slices/rebuild/recipe-text.js +16 -4
- package/dist/slices/rebuild/runtime-subtitles.js +13 -1
- package/dist/tutorials/Create-Narration.md +1 -1
- package/dist/tutorials/Editing-a-Project.md +1 -0
- package/dist/tutorials/Narration-Aliases-and-Glossary.md +97 -7
- package/dist/tutorials/Settings-Reference.md +1 -0
- package/dist/web/assets/index-B-ZU1ZP9.js +460 -0
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
- package/dist/web/assets/index-Cpa58woP.js +0 -459
|
@@ -1,8 +1,55 @@
|
|
|
1
1
|
# Narration Aliases and Glossary
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Three tools control how the narrator says words without changing what is written. **Name pronunciations** is your own list of names with their IPA, used before anything an article says, so a name sounds the same in every video. **Narration aliases** swap a written form for a spoken one, such as `Dr.` said as "Doctor", with any generated voice. The **Pronunciation Glossary** is the list each article writes for itself, such as `Arda: /ˈɑɹdə/`. IPA is read by Inworld's TTS-2 voices; aliases work with every voice. In all three the article, the transcript and the captions keep the written words; only the audio changes.
|
|
4
4
|
|
|
5
|
-
**Where to find it:** aliases in **Settings → Voices → Pronunciation**.
|
|
5
|
+
**Where to find it:** your list in **Settings → Voices → Name pronunciations**, aliases in **Settings → Voices → Pronunciation**. The switches are on Create under **Narration → Change → More narration settings**, and in a project's **Edit settings** → **Narration**. A project's own glossary is shown on its **Article** section, in the **Pronunciation** tab.
|
|
6
|
+
|
|
7
|
+
## Name pronunciations
|
|
8
|
+
|
|
9
|
+
Your list settles a name once. Every project copies it when it starts, and its entries come **before** the glossary that project's article wrote, so the name is said your way whatever the article spelled out.
|
|
10
|
+
|
|
11
|
+
1. Open **Settings → Voices → Name pronunciations**.
|
|
12
|
+
2. Write one `Term: /IPA/` per line, in standard-English IPA between slashes:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Gygax: /ˈɡaɪɡæks/
|
|
16
|
+
Faerûn: /feɪˈruːn/
|
|
17
|
+
Mordenkainen: /ˌmɔːrdənˈkeɪnən/
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
3. Press **Save pronunciations**. The line under the box says how many names the list pronounces, and a note names any line narration has to skip, by its number and reason, the way the article's glossary does.
|
|
21
|
+
|
|
22
|
+
- One IPA word per written word. A hyphenated name's parts each get one.
|
|
23
|
+
- A possessive follows its name: `Gygax's` is said from the `Gygax` entry.
|
|
24
|
+
- A dash, `n/a` or nothing leaves the name read as written: useful for a name you want plain.
|
|
25
|
+
- Up to 100,000 characters, which is thousands of names.
|
|
26
|
+
- Only Inworld **TTS-2** and **TTS-2 Flash** read IPA. For any other voice, use an alias instead.
|
|
27
|
+
- **Use pronunciations** must be on for the project (the default) — the same switch that reads the article's glossary.
|
|
28
|
+
|
|
29
|
+
A project keeps the copy it started with. Editing the list later changes new projects only, until you open a project's **Edit settings** → **Narration** and press **Copy the list again** under **Use pronunciations**; only the narration where a changed name appears is made again.
|
|
30
|
+
|
|
31
|
+
### Two people, or an agent, at the same list
|
|
32
|
+
|
|
33
|
+
The whole list is saved at once, so Slopify makes sure one save never quietly replaces another. Every save carries the version of the list it was made from. If something else saved meanwhile — a second window, or an agent — the save is refused and the page says so:
|
|
34
|
+
|
|
35
|
+
> **The list changed somewhere else.** An agent saved it: it has 3 names you don't have, 1 said differently.
|
|
36
|
+
|
|
37
|
+
Nothing is lost. What you typed stays in the box, and you choose:
|
|
38
|
+
|
|
39
|
+
- **Save mine anyway** keeps what is on screen, over theirs.
|
|
40
|
+
- **Load theirs instead** puts their list in the box, so you can add your change to it and save.
|
|
41
|
+
|
|
42
|
+
An agent gets the same refusal as a sentence, with the list as it stands: it reads the version, folds its change into that text, and saves again (`get_library_pronunciations`, then `set_library_pronunciations` with `{text, version}`).
|
|
43
|
+
|
|
44
|
+
### Which list wins
|
|
45
|
+
|
|
46
|
+
| Where a pronunciation comes from | Order |
|
|
47
|
+
|---|---|
|
|
48
|
+
| **Name pronunciations** (your list) | First: it wins everywhere |
|
|
49
|
+
| The article's own **Pronunciation Glossary** | Next, for names your list does not have |
|
|
50
|
+
| **Other projects' pronunciations**, while shared | Last, for names neither of the above has |
|
|
51
|
+
|
|
52
|
+
An alias beats all three, because it changes the words before the sounds are decided.
|
|
6
53
|
|
|
7
54
|
## Narration aliases
|
|
8
55
|
|
|
@@ -39,7 +86,7 @@ Each row's title line sums it up, for example "Says Dr. as Doctor · whole word"
|
|
|
39
86
|
- Two aliases can't share a written form.
|
|
40
87
|
- Where two overlap in the text, the one starting first wins, then the longer.
|
|
41
88
|
- A multi-word alias is read with single spaces around it: "Grey et al. wrote" goes to the voice as "Grey and others wrote".
|
|
42
|
-
- An alias wins over a Pronunciation Glossary entry for the same words.
|
|
89
|
+
- An alias wins over a Name pronunciations entry and a Pronunciation Glossary entry for the same words.
|
|
43
90
|
- Aliases work with every generated voice, and in multi-voice runs they apply to each speaker's turn.
|
|
44
91
|
- Aliases also change the sentences **Narration preparation** reads, so its cues match what is said.
|
|
45
92
|
|
|
@@ -87,7 +134,7 @@ A table with `Term | IPA` columns works too. If you paste your own article, add
|
|
|
87
134
|
### Turn it on
|
|
88
135
|
|
|
89
136
|
1. On Create, open **Narration → Change → More narration settings**.
|
|
90
|
-
2. Keep **Use
|
|
137
|
+
2. Keep **Use pronunciations** on (the default). It shows only while the voice is one that reads IPA, and it covers both your Name pronunciations and this article's glossary.
|
|
91
138
|
3. Optional: keep **Also use pronunciations from my other projects** on (the default). It adds every term from your other projects' glossaries, copied when this project starts. This project's own glossary wins where they differ. Turn it off to use only this article's glossary.
|
|
92
139
|
|
|
93
140
|
### Entries that are skipped
|
|
@@ -104,21 +151,64 @@ An entry narration can't use is skipped and read as ordinary text. It never bloc
|
|
|
104
151
|
|
|
105
152
|
To fix skipped entries, edit the Pronunciation Glossary at the end of the article in **Edit settings** → **Article**, then save. See [Editing a project](Editing-a-Project).
|
|
106
153
|
|
|
107
|
-
##
|
|
154
|
+
## Does this video say the names right?
|
|
155
|
+
|
|
156
|
+
Two checks on the project page answer that from files the project already has. Neither one blocks the run or the upload, neither costs anything, and neither changes a thing.
|
|
157
|
+
|
|
158
|
+
### Before the narration is paid for
|
|
159
|
+
|
|
160
|
+
The **Narration** section says, in one line, which names this article uses that nothing pronounces: not its own Pronunciation Glossary, not your **Name pronunciations** list, not the pooled copy of the other projects' glossaries. **Every mention** opens the table — each name, how often it is said as written and how often as a possessive, proper names first.
|
|
161
|
+
|
|
162
|
+
This is the cheapest moment to settle a name, because adding it to **Name pronunciations** costs nothing and the voice has not been paid yet.
|
|
163
|
+
|
|
164
|
+
It also catches the names a glossary looks like it covers and doesn't:
|
|
165
|
+
|
|
166
|
+
| What the glossary has | What the article says | Why the voice guesses |
|
|
167
|
+
|---|---|---|
|
|
168
|
+
| `Belwar Dissengulp` | "Belwar" on its own | A two-word term never matches one of its words said alone. |
|
|
169
|
+
| `Drizzt` | "Drizzt's" | A project narrated under the old pronunciation rules wrapped no possessive. |
|
|
170
|
+
| `Catti-brie` | "Catti-brie" | The old rules skipped a hyphenated term, so it was read as ordinary text. |
|
|
171
|
+
|
|
172
|
+
A project is judged by the rules it was voiced under, so a video made before those rules changed is told what actually happened to it, not what would happen today.
|
|
173
|
+
|
|
174
|
+
### After the render, before the upload
|
|
175
|
+
|
|
176
|
+
The **YouTube** section carries the same line, saying two things.
|
|
177
|
+
|
|
178
|
+
**What the voice was sent.** Counted from the voice script itself, which is exactly the text the voice received: a name with no IPA in front of it there was guessed, whatever the glossary says.
|
|
179
|
+
|
|
180
|
+
**How each name was heard.** Read from the per-word confidence the subtitle timing already wrote when the captions were made: each name's mean, and the spread across its mentions. Nothing is listened to again and nothing is re-aligned.
|
|
181
|
+
|
|
182
|
+
The spread is the signal, not a low score. A rare name is heard poorly even when it is said perfectly, so only a name whose own mentions disagree with each other is flagged: eight mentions or more, and a spread of 0.30 or more between its 10th and 90th percentile.
|
|
183
|
+
|
|
184
|
+
**What came out.** The timing model writes down the letters it heard over a word whenever they are not the word itself, so **Came out as** shows how a name was actually said, next to how many of its mentions came out that way — `“eltarel” · 21 of 21` — and **You asked for** shows the IPA your glossary gave it. This is the one part of the check that can catch a name said wrong the *same* way every time: that name scores high and scores evenly, so nothing above it would ever flag.
|
|
185
|
+
|
|
186
|
+
Spelling is folded away before anything is compared, because the model writes what it hears and has no idea how the name is spelled. It writes “creeg” for Kreeg, “bell” for Bel, “tier” for Tyr and “drist” for Drizzt — all of them the name said correctly — and none of those is reported. What is reported is a sound the name does not spell, in most of its mentions: six in ten or more, over at least three.
|
|
187
|
+
|
|
188
|
+
Read the letters rather than trust them: they come from a second model listening, not from a verdict, and a word that is spelled unlike how it sounds can still be named although it was said right. If what came out is wrong, change the name's IPA in **Name pronunciations** and narrate again; if it sounds right to you, nothing needs doing.
|
|
189
|
+
|
|
190
|
+
If the captions were timed before Slopify started keeping this, the check says so instead of calling the names right. Making the captions again fills it in and costs nothing but time.
|
|
191
|
+
|
|
192
|
+
A name read as an ordinary English word is left out of both checks: a one-word name that the same text also writes in lower case is a word here and not a name, which is why "Hall" stays quiet in a video that also says "hall".
|
|
193
|
+
|
|
194
|
+
## Which one do I use?
|
|
108
195
|
|
|
109
196
|
| You want | Use |
|
|
110
197
|
|---|---|
|
|
111
198
|
| An abbreviation read in full (Dr., St., vs.) | Alias |
|
|
112
199
|
| A word read as a different word or spelling | Alias |
|
|
113
200
|
| Any voice service | Alias |
|
|
114
|
-
| A
|
|
115
|
-
|
|
|
201
|
+
| A name said the same way in every video | Name pronunciations |
|
|
202
|
+
| To correct a name once, for everything you have made since | Name pronunciations |
|
|
203
|
+
| A made-up or foreign name said exactly right, on Inworld TTS-2 | Name pronunciations, or the article's glossary |
|
|
204
|
+
| Pronunciations that come with each article automatically | The article's glossary |
|
|
116
205
|
|
|
117
206
|
## Tips
|
|
118
207
|
|
|
119
208
|
- Spell **Say it as** the way it sounds, not the way it is written: "Shiv-awn" rather than "Siobhan".
|
|
120
209
|
- Keep **Whole word** on unless you really want to match inside other words. Otherwise `St.` could fire inside unrelated text.
|
|
121
210
|
- Listen to the first minute of a new run before a long batch, and add aliases for anything the voice stumbles on.
|
|
211
|
+
- A name that comes back video after video belongs in **Name pronunciations**, not in each article's prompt: one line there holds for every project that follows.
|
|
122
212
|
|
|
123
213
|
## Related pages
|
|
124
214
|
|
|
@@ -58,6 +58,7 @@ Full details: [Keys and Services](Providers-and-Keys) and [AI CLIs](AI-CLIs).
|
|
|
58
58
|
| **Sounds like a real person** | On for a voice cloned from, or made to sound like, someone real. Copy for YouTube Studio then answers Yes to YouTube's question for videos it narrates. | Default: off. |
|
|
59
59
|
| **Listen** | Reads one sentence aloud: free with the system voice, one short paid request with a service that has a key. | |
|
|
60
60
|
| **Remove** | Removes the voice after you confirm. Projects keep the audio they made with it. | |
|
|
61
|
+
| **Name pronunciations** | Opens your own list of names with their IPA, said that way in every video, before any article's own glossary. | |
|
|
61
62
|
| **Pronunciation** | Opens the narration aliases: words the narrator says differently from how they are written. | |
|
|
62
63
|
|
|
63
64
|
A line above the table says when a voice's service has no key yet, with a button to add it. See [Keys and Services](Providers-and-Keys#add-a-voice) and [Narration Aliases and Glossary](Narration-Aliases-and-Glossary).
|