Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Klientská knihovna Azure AI Speech Transcription poskytuje snadný přístup k službě převodu řeči na text od Azure, což umožňuje převádět zvuk na text s vysokou přesností.
Klientskou knihovnu použijte k:
- Přepisujte zvukové soubory na text
- Podpora více jazyků a lokalit
- Povolte diarizaci mluvčích pro identifikaci různých mluvčích
- Použijte filtrování sprostých slov
- Použijte vlastní modely řeči
- Zpracovávat jak lokální soubory, tak vzdálené URL adresy
- Použijte Enhanced Mode pro transkripci a překlady poháněné LLM
Klíčové odkazy:
Začínáme
Aktuálně podporovaná prostředí
- LTS verze Node.js
- Nejnovější verze Safari, Chrome, Edge a Firefox.
Další podrobnosti najdete v zásadách podpory.
Předpoklady
- Předplatné služby Azure.
- Zdroj Azure AI Speech nebo Azure AI Foundry.
Nainstalujte balíček @azure/ai-speech-transcription.
Nainstalujte klientskou knihovnu Azure AI Speech Transcription pro JavaScript s npm:
npm install @azure/ai-speech-transcription
Vytvořte a ověřte TranscriptionClient
Pro vytvoření klientského objektu pro přístup k Azure Transcription API budete potřebovat svůj endpoint Azure Transcription resource a .credential
Endpoint pro váš Azure Transcription zdroj najdete v Azure Portalu.
Možnost 1: Autentizace API klíče
Klíč API vašeho Speech resource najdete v Azure Portalu.
import { TranscriptionClient } from "@azure/ai-speech-transcription";
import { AzureKeyCredential } from "@azure/core-auth";
const client = new TranscriptionClient("<endpoint>", new AzureKeyCredential("<api-key>"));
Možnost 2: Ověření Entra ID (doporučeno pro produkci)
Pro produkční scénáře se doporučuje používat autentizaci Entra ID s řízenými identitami nebo principy služeb. Nainstalujte balíček @azure/identity:
npm install @azure/identity
Budete také muset přiřadit příslušnou roli (např. "Uživatel kognitivních služeb") vaší spravované identitě nebo principálu služby. Pro více informací viz Azure AI Services autentizace.
Pomocí Node.js a prostředí podobných uzlům můžete k ověření klienta použít třídu DefaultAzureCredential.
import { TranscriptionClient } from "@azure/ai-speech-transcription";
import { DefaultAzureCredential } from "@azure/identity";
const client = new TranscriptionClient("<endpoint>", new DefaultAzureCredential());
Pro prostředí prohlížeče použijte k ověření InteractiveBrowserCredential z balíčku @azure/identity.
import { InteractiveBrowserCredential } from "@azure/identity";
import { TranscriptionClient } from "@azure/ai-speech-transcription";
const credential = new InteractiveBrowserCredential({
tenantId: "<YOUR_TENANT_ID>",
clientId: "<YOUR_CLIENT_ID>",
});
const client = new TranscriptionClient("<endpoint>", credential);
Verze rozhraní API služby
Klientská knihovna ve výchozím nastavení cílí na nejnovější verzi API služby. Při instancování klienta můžete zvolit konkrétní podporovanou verzi API:
import { TranscriptionClient, KnownServiceApiVersions } from "@azure/ai-speech-transcription";
import { AzureKeyCredential } from "@azure/core-auth";
const client = new TranscriptionClient("<endpoint>", new AzureKeyCredential("<api-key>"), {
serviceVersion: KnownServiceApiVersions.V20251015,
});
JavaScriptový balíček
Pokud chcete tuto klientskou knihovnu použít v prohlížeči, musíte nejprve použít bundler. Podrobnosti o tom, jak to udělat, najdete v naší dokumentaci k sdružování.
Klíčové koncepty
TranscriptionClient
TranscriptionClient je hlavní rozhraní pro vývojáře využívající klientskou knihovnu Azure AI Speech Transscription. Poskytuje dvě metody přetížení transcribe — jednu pro audio binární data a druhou pro audio URL.
Formáty zvuku
Služba podporuje různé audio formáty včetně WAV, MP3, OGG, FLAC a dalších. Zvuk musí být:
- Trvá méně než 2 hodiny
- Menší než 250 MB
Možnosti přepisu
Přepis si můžete přizpůsobit pomocí možností jako:
-
Filtrování sprostých slov: Kontrola, jak jsou sprostá slova řešena v přepisech (
"None", ,"Masked","Removed","Tags") - Diarisace reproduktorů: Identifikujte různé reproduktory v multispeakerovém audio (až 36 reproduktorů)
- Seznamy frází: Poskytujte doménově specifické fráze pro zvýšení přesnosti
- Detekce jazyka: Automaticky detekuje mluvený jazyk nebo určuje známá místa
- Vylepšený režim: Zlepšit kvalitu přepisu pomocí LLM poháněného zpracováním, překladem a přizpůsobením promptů
Příklady
- Přepište místní zvukový soubor
- Přepisujte zvuk z URL
- Získejte přístup k jednotlivým přepsaným slovům
- Identifikujte mluvčí s diarisací
- Filtrační sprostá slova
- Zlepšujte přesnost pomocí vlastních frází
- Přepisujte v známém jazyce
- Pro nejvyšší přesnost použijte Enhanced Mode
- Překlad pomocí vylepšeného režimu
- Kombinujte více možností
Přepište místní zvukový soubor
Nejzákladnější operací je přepsat zvukový soubor z vašeho lokálního souborového systému:
import { TranscriptionClient } from "@azure/ai-speech-transcription";
import { AzureKeyCredential } from "@azure/core-auth";
import { readFileSync } from "node:fs";
const client = new TranscriptionClient("<endpoint>", new AzureKeyCredential("<api-key>"));
const audioFile = readFileSync("path/to/audio.wav");
const result = await client.transcribe(audioFile);
console.log(`Duration: ${result.durationInMs}ms`);
console.log("Transcription:", result.combinedPhrases[0]?.text);
Přepisujte zvuk z URL
Zvuk můžete přepisovat přímo z veřejně přístupné URL bez nutnosti stahování souboru:
import { TranscriptionClient } from "@azure/ai-speech-transcription";
import { AzureKeyCredential } from "@azure/core-auth";
const client = new TranscriptionClient("<endpoint>", new AzureKeyCredential("<api-key>"));
const result = await client.transcribe("https://example.com/audio/sample.wav", {
locales: ["en-US"],
});
console.log("Transcription:", result.combinedPhrases[0]?.text);
Získejte přístup k jednotlivým přepsaným slovům
Pro přístup k detailům na úrovni slov, včetně časových razítek, skóre důvěry a jednotlivých slov:
import { TranscriptionClient } from "@azure/ai-speech-transcription";
import { AzureKeyCredential } from "@azure/core-auth";
import { readFileSync } from "node:fs";
const client = new TranscriptionClient("<endpoint>", new AzureKeyCredential("<api-key>"));
const audioFile = readFileSync("path/to/audio.wav");
const result = await client.transcribe(audioFile);
for (const phrase of result.phrases) {
console.log(`Phrase: ${phrase.text}`);
console.log(
` Offset: ${phrase.offsetMilliseconds}ms | Duration: ${phrase.durationMilliseconds}ms`,
);
console.log(` Confidence: ${phrase.confidence.toFixed(2)}`);
// Access individual words in the phrase
for (const word of phrase.words ?? []) {
console.log(` Word: '${word.text}' | Offset: ${word.offsetMilliseconds}ms`);
}
}
Identifikujte mluvčí s diarisací
Deníková analýza mluvčích určuje, kdo mluvil při rozhovorech s více mluvčími:
import { TranscriptionClient } from "@azure/ai-speech-transcription";
import { AzureKeyCredential } from "@azure/core-auth";
import { readFileSync } from "node:fs";
const client = new TranscriptionClient("<endpoint>", new AzureKeyCredential("<api-key>"));
const audioFile = readFileSync("path/to/conversation.wav");
const result = await client.transcribe(audioFile, {
diarizationOptions: {
maxSpeakers: 4, // Expect up to 4 speakers in the conversation
},
});
for (const phrase of result.phrases) {
console.log(`Speaker ${phrase.speaker}: ${phrase.text}`);
}
Poznámka: Celkový počet identifikovaných mluvčích nikdy nepřekročí
maxSpeakers. Pokud skutečný zvuk obsahuje více reproduktorů, než je specifikováno, služba je konsoliduje. Nastavte rozumnou horní hranici, pokud si nejste jisti přesným počtem.
Filtrační sprostá slova
Kontrolujte, jak se sprostá slova objevují ve vašich přepisech pomocí různých filtračních režimů:
import { TranscriptionClient, KnownProfanityFilterModes } from "@azure/ai-speech-transcription";
import { AzureKeyCredential } from "@azure/core-auth";
import { readFileSync } from "node:fs";
const client = new TranscriptionClient("<endpoint>", new AzureKeyCredential("<api-key>"));
const audioFile = readFileSync("path/to/audio.wav");
const result = await client.transcribe(audioFile, {
profanityFilterMode: KnownProfanityFilterModes.Masked, // Default - profanity replaced with asterisks
});
console.log("Transcription:", result.combinedPhrases[0]?.text);
Dostupné režimy:
-
"None": Žádné filtrování — sprostá slova se objevují tak, jak jsou vyslovena -
"Masked": Sprostá slova nahrazena hvězdičkami (např.f***) -
"Removed": Vulgarisma zcela odstraněna z textu -
"Tags": Sprostá slova zabalená v XML tagech (např.<profanity>word</profanity>)
Zlepšujte přesnost pomocí vlastních frází
Přidejte vlastní fráze, které pomohou službě správně rozpoznávat doménově specifické výrazy, názvy a zkratky:
import { TranscriptionClient } from "@azure/ai-speech-transcription";
import { AzureKeyCredential } from "@azure/core-auth";
import { readFileSync } from "node:fs";
const client = new TranscriptionClient("<endpoint>", new AzureKeyCredential("<api-key>"));
const audioFile = readFileSync("path/to/audio.wav");
const result = await client.transcribe(audioFile, {
phraseList: {
phrases: ["Contoso", "Jessie", "Rehaan"],
},
});
console.log("Transcription:", result.combinedPhrases[0]?.text);
Přepisujte v známém jazyce
Když znáte jazyk zvuku, určení jednoho místa zlepší přesnost a sníží latenci:
import { TranscriptionClient } from "@azure/ai-speech-transcription";
import { AzureKeyCredential } from "@azure/core-auth";
import { readFileSync } from "node:fs";
const client = new TranscriptionClient("<endpoint>", new AzureKeyCredential("<api-key>"));
const audioFile = readFileSync("path/to/english-audio.mp3");
const result = await client.transcribe(audioFile, {
locales: ["en-US"],
});
console.log("Transcription:", result.combinedPhrases[0]?.text);
Pro identifikaci jazyka, když si nejste jisti jazykem, zadejte více kandidátních lokalit a služba automaticky rozpozná daný jazyk:
import { TranscriptionClient } from "@azure/ai-speech-transcription";
import { AzureKeyCredential } from "@azure/core-auth";
import { readFileSync } from "node:fs";
const client = new TranscriptionClient("<endpoint>", new AzureKeyCredential("<api-key>"));
const audioFile = readFileSync("path/to/audio.mp3");
const result = await client.transcribe(audioFile, {
locales: ["en-US", "es-ES"],
});
for (const phrase of result.phrases) {
console.log(`[${phrase.locale}] ${phrase.text}`);
}
Pro nejvyšší přesnost použijte Enhanced Mode
Enhanced Mode využívá zpracování poháněné LLM pro nejvyšší přesnost přepisu:
import { TranscriptionClient, KnownProfanityFilterModes } from "@azure/ai-speech-transcription";
import { AzureKeyCredential } from "@azure/core-auth";
import { readFileSync } from "node:fs";
const client = new TranscriptionClient("<endpoint>", new AzureKeyCredential("<api-key>"));
const audioFile = readFileSync("path/to/audio.wav");
const result = await client.transcribe(audioFile, {
// Enhanced mode: LLM-powered speech recognition with prompt customization
enhancedMode: {
task: "transcribe",
prompt: ["Output must be in lexical format."],
},
// Existing Fast Transcription options work alongside enhanced mode
diarizationOptions: {
maxSpeakers: 2,
},
profanityFilterMode: KnownProfanityFilterModes.Masked,
activeChannels: [0, 1],
});
for (const phrase of result.phrases) {
console.log(`[Speaker ${phrase.speaker}] ${phrase.text}`);
}
Překlad pomocí vylepšeného režimu
Enhanced Mode také podporuje překlad řeči do cílového jazyka:
import { TranscriptionClient, KnownProfanityFilterModes } from "@azure/ai-speech-transcription";
import { AzureKeyCredential } from "@azure/core-auth";
import { readFileSync } from "node:fs";
const client = new TranscriptionClient("<endpoint>", new AzureKeyCredential("<api-key>"));
const audioFile = readFileSync("path/to/chinese-audio.wav");
const result = await client.transcribe(audioFile, {
enhancedMode: {
task: "translate",
targetLanguage: "ko", // Translate to Korean
},
profanityFilterMode: KnownProfanityFilterModes.Masked,
});
console.log("Translated to Korean:", result.combinedPhrases[0]?.text);
Kombinujte více možností
Můžete kombinovat více transkripčních funkcí pro složité scénáře:
import { TranscriptionClient, KnownProfanityFilterModes } from "@azure/ai-speech-transcription";
import { AzureKeyCredential } from "@azure/core-auth";
import { readFileSync } from "node:fs";
const client = new TranscriptionClient("<endpoint>", new AzureKeyCredential("<api-key>"));
const audioFile = readFileSync("path/to/meeting.wav");
const result = await client.transcribe(audioFile, {
// Enable speaker diarization
diarizationOptions: {
maxSpeakers: 5,
},
// Mask profanity
profanityFilterMode: KnownProfanityFilterModes.Masked,
// Add custom phrases
phraseList: {
phrases: ["action items", "Q4", "KPIs"],
},
});
console.log("Full Transcript:");
console.log(result.combinedPhrases[0]?.text);
for (const phrase of result.phrases) {
console.log(`Speaker ${phrase.speaker}: ${phrase.text}`);
}
Troubleshooting
Běžné problémy
- Selhání autentizace: Ověřte, že váš API klíč nebo Entra ID jsou správné a že je váš řečový zdroj aktivní.
- Nepodporovaný audio formát: Ujistěte se, že váš zvuk je v podporovaném formátu (WAV, MP3, OGG, FLAC atd.). Služba automaticky zajišťuje detekci formátu.
- Pomalý přepis: U velkých souborů se ujistěte, že vaše síťové připojení je stabilní.
- Špatná přesnost: Zkuste zadat správné místo, přidat vlastní fráze pro doménové termíny nebo použít Enhanced Mode.
Logování
Povolení protokolování může pomoct odhalit užitečné informace o chybách. Pokud chcete zobrazit protokol požadavků HTTP a odpovědí, nastavte proměnnou AZURE_LOG_LEVEL prostředí na infohodnotu . Případně můžete protokolování povolit za běhu voláním setLogLevel příkazu @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Podrobnější pokyny k povolení protokolů najdete v dokumentaci k @azure/protokolovacímu balíčku.
Další kroky
Prozkoumejte další ukázky a dozvíte se více o pokročilých funkcích:
- Základní přepis – Vytvořte klienty a základní přepis
- Možnosti přepisu – Kombinujte více funkcí přepisu
- Přepis z URL - Přepis z vzdálených URL
- Enhanced Mode – transkripce a překlad poháněný LLM
- Filtrování sprostých slov - Všechny režimy filtrování sprostých slov
- Diarizace mluvčího – identifikace mluvčího
- Seznam frází – vlastní slovní zásoba
- Transkripce s lokalitou – specifikace a detekce jazyka
- Multilingvální transkripce – vícejazyčný obsah (náhled)
Contributing
Pokud chcete přispívat do této knihovny, přečtěte si průvodce pro přispívání a přečtěte si další informace o tom, jak sestavit a otestovat kód.
Související projekty
Azure SDK for JavaScript