English · 简体中文
Azure AI Speech is the plugin's Azure provider: several hundred neural voices in over a hundred languages, multilingual voices that read a mixed document in one go, and word timings — so Read Aloud highlights word by word. Its Free (F0) pricing tier gives 500,000 characters of neural text to speech per month, every month, for as long as the resource exists. A journal article is 40,000–80,000 characters, so that is six to twelve papers a month, read in full, at no cost. This tutorial walks through getting a key on that tier and putting it into the plugin. Time: about fifteen minutes, most of it Microsoft's sign-up.
Go to azure.microsoft.com/free and Start free. Sign in with the Microsoft account, fill in the profile, verify the phone number and the card. The free account also comes with a US$200 credit for the first 30 days and twelve months of free amounts of various services — you need none of that for the plugin: the Speech Free tier below is permanent and independent of it.
Open the Azure portal and choose Create a resource (the + at the top left).
Search the marketplace for Speech and pick Speech by Microsoft (under Azure AI services / Foundry Tools — the name of the family changes every year, the product does not). Press Create.
Fill in the form:
| Field | Value |
|---|---|
| Subscription | the one the sign-up created (Free Trial / Azure subscription 1) |
| Resource group | Create new, any name (zotero-tts) |
| Region | one near you — see below |
| Name | anything unique (zotero-tts-speech) |
| Pricing tier | Free F0 |
Only one Free Speech resource is allowed per subscription and region; if Free F0 is grayed out, you already have one there, or had one: a deleted resource lingers in a soft-deleted state for a while and still counts. Pick another region, or purge it (Azure AI services, Manage deleted resources).
Review + create, then Create. Deployment takes under a minute; press Go to resource.
The region is where your requests are served, so pick a close one for low
latency: eastasia (Hong Kong) or japaneast from East Asia, westeurope
or northeurope from Europe, eastus / westus2 from North America.
Almost every voice is available in every region; the full list is in
Speech service regions.
The plugin needs the region's short id (eastasia, not East Asia); the
resource page shows it.
On the resource's page open Keys and Endpoint (under Resource Management in the left column). It shows KEY 1, KEY 2 and Location/Region. Copy KEY 1 and note the region id. Either key works; two exist so one can be rotated while the other stays in use.
Zotero → Settings → Zotero-TTS → Azure section:
| Field | Value |
|---|---|
| Enable Azure voices | on |
| API key | KEY 1 |
| Region | the region id, e.g. eastasia |
Test connection should answer Connected. N voices available. Synthesis works. — the test synthesizes two characters, which proves the key can
spend, not just list voices. Open Read Aloud, choose the Local tier, and
the Azure-… voices are there; for reading a document in one language
pick a voice of that language (Azure-Xiaoxiao, Azure-Ava), for
mixed-language documents one of the Multilingual ones under the "Multiple
languages" entry. For word-by-word highlighting set Settings → General →
Read Aloud → Highlight current to Word.
…Neural voices the plugin lists, multilingual ones included. The
counter resets on the first of each month.…:DragonHD… in the name) are a separate,
paid line; on a Free resource stay with the plain neural voices.eastasia vs eastus);
or the monthly allowance is used up, see above.<region>.tts.speech.microsoft.com —
a firewall or a proxy; Zotero follows the system proxy settings.