Skip to content

Commit e453132

Browse files
Kilerdkilerdclaude
authored
docs(tts): add turkish, tagalog and pt-br to the normalization languages (#272)
text-normalizer v4.0.0 routes `tr`/`tr-TR`, `tl`/`tl-PH`/`fil`/`fil-PH` and `pt-BR` to their own grammars, and `pt` now follows Brazilian conventions. Auto-detection covers Turkish and Tagalog, and sends Chinese written mostly in Traditional characters to the Traditional Chinese rules. Co-authored-by: kilerd <kilerd@kilerds-Mac-mini.local> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 70296af commit e453132

2 files changed

Lines changed: 14 additions & 4 deletions

File tree

‎developer-guide/getting-started/changelog.mdx‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ description: "Complete release history and version updates for all Fish Audio pr
44
icon: "clock-rotate-left"
55
rss: true
66
---
7+
<Update label="More normalization languages" description="October 20, 2026" tags={["Fish Audio"]}>
8+
## More normalization languages
9+
10+
Text normalization now has rules for Turkish (`tr`) and Tagalog (`tl`, `fil`), and Portuguese follows Brazilian conventions, so `pt-BR` is supported too. Without `language`, Turkish and Tagalog text is detected, and Chinese written mostly in Traditional characters uses the Traditional Chinese rules.
11+
12+
[Supported normalization languages](/features/text-to-speech#supported-normalization-languages)
13+
</Update>
14+
715
<Update label="TTS language field" description="October 16, 2026" tags={["Fish Audio"]}>
816
## TTS language field
917

‎features/text-to-speech.mdx‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ curl --request POST https://api.fish.audio/v1/tts \
308308
```
309309

310310
- **Default**: omit `language`, or send `"auto"` or an empty string, and the language is detected for each text chunk. This is the same behavior as before the field was added.
311-
- **Regional conventions**: Spanish without a region follows Spain conventions, so `$300` becomes "trescientos dólares" and decimals use a comma. Send `es-MX` for Mexican readings ("pesos", "punto"). For Traditional Chinese, send `zh-TW`, which uses its own rules.
311+
- **Regional conventions**: Spanish without a region follows Spain conventions, so `$300` becomes "trescientos dólares" and decimals use a comma. Send `es-MX` for Mexican readings ("pesos", "punto"). For Traditional Chinese, send `zh-TW`, which uses its own rules. Portuguese follows Brazilian conventions, with or without the `BR` region.
312312
- **Tags without rules**: a tag with no dedicated normalization rules skips normalization instead of failing. See [Supported normalization languages](#supported-normalization-languages).
313313
- **Mixed-language text**: leave `language` unset.
314314
- **`normalize: false`**: `language` then only affects word timestamps.
@@ -332,14 +332,16 @@ Text normalization has dedicated rules for the languages below. Tags match case-
332332
| French | `fr`, `fr-FR`, `fr-CA`, `fr-BE`, `fr-CH` |
333333
| German | `de`, `de-DE`, `de-AT`, `de-CH` |
334334
| Italian | `it`, `it-IT`, `it-CH` |
335-
| Portuguese | `pt` |
335+
| Portuguese (Brazil) | `pt`, `pt-BR` |
336336
| Russian | `ru`, `ru-RU` |
337337
| Arabic | `ar`, `ar-SA`, `ar-AE`, `ar-EG` |
338+
| Turkish | `tr`, `tr-TR` |
339+
| Tagalog (Filipino) | `tl`, `tl-PH`, `fil`, `fil-PH` |
338340

339341
Each row has its own rules, so the tag you pick changes the readings. For example, with `es` or `es-ES`, `$300` is read as "trescientos dólares" and the `0.9` in `0.9%` as "cero coma nueve". With `es-MX`, they are read as "trescientos pesos" and "cero punto nueve". In the same way, `zh-TW` uses Traditional Chinese rules, not the Simplified Chinese ones.
340342

341-
- Any other tag skips normalization, with no error, and the text is still synthesized as written. Today that includes `zh-HK`, `yue`, `pt-BR`, `pt-PT`, `es-419`, and `es-US`.
342-
- With `language` unset, the language of each chunk is auto-detected among the languages above. Chunks whose language can't be detected are synthesized without normalization.
343+
- Any other tag skips normalization, with no error, and the text is still synthesized as written. Today that includes `zh-HK`, `yue`, `pt-PT`, `es-419`, and `es-US`.
344+
- With `language` unset, the language of each chunk is auto-detected among the languages above. Chinese written mostly in Traditional characters uses the Traditional Chinese rules. Portuguese, Turkish, and Tagalog are detected only when the detection is confident, so set `language` for short texts in these languages. Chunks whose language can't be detected are synthesized without normalization.
343345
- The list grows over time as normalization rules are added.
344346

345347
## Going further

0 commit comments

Comments
 (0)