Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы используете Azure OpenAI для преобразования текста в речь, используя голоса OpenAI.
Доступные голоса: alloy, echo, fable, onyx, , novaи shimmer. Дополнительные сведения см. в справочной документации по Azure OpenAI для преобразования текста в речь.
Предпосылки
- Подписка Azure — создайте бесплатную учетную запись.
- Ресурс Azure OpenAI, созданный в регионах Центрально-Северной части США или Центральной Швеции с развернутой моделью
tts-1илиtts-1-hd. Дополнительные сведения см. в статье "Создание ресурса" и развертывание модели с помощью Azure OpenAI.
Настройка
Получение ключа и конечной точки
Чтобы успешно выполнить вызов к Azure OpenAI, вам потребуется конечная точка и ключ.
| Имя переменной | Ценность |
|---|---|
AZURE_OPENAI_ENDPOINT |
Конечную точку службы можно найти в разделе "Ключи и конечная точка" при изучении вашего ресурса в портале Azure. Кроме того, можно найти конечную точку на странице "Развертывания " на портале Microsoft Foundry. Пример конечной точки: https://docs-test-001.openai.azure.com/. |
AZURE_OPENAI_API_KEY |
Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Вы можете использовать KEY1 или KEY2. |
Перейдите к своему ресурсу на портале Azure.
Конечную точку и ключи можно найти в разделе Управление ресурсами. Скопируйте конечную точку и ключ доступа, так как требуется для проверки подлинности вызовов API. Вы можете использовать KEY1 или KEY2. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.
Переменные среды
Создайте и назначьте переменные постоянной среды для ключа и конечной точки.
Это важно
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. Если вы используете ключ API, сохраните его безопасно в Azure Key Vault. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Создание запроса и ответа REST
В оболочке bash выполните следующую команду. Необходимо заменить YourDeploymentName на имя развертывания, которое вы выбрали при развертывании модели преобразования текста в речь. Имя развертывания не обязательно совпадает с именем модели. При вводе имени модели возникает ошибка, если вы не выбрали имя развертывания, идентичное имени базовой модели.
curl $AZURE_OPENAI_ENDPOINT/openai/deployments/YourDeploymentName/audio/speech?api-version=2025-04-01-preview \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1-hd",
"input": "I'm excited to try text to speech.",
"voice": "alloy"
}' --output speech.mp3
Формат первой строки команды с примером конечной точки будет выглядеть следующим образом: curl https://aoai-docs.openai.azure.com/openai/deployments/{YourDeploymentName}/audio/speech?api-version=2025-04-01-preview \.
Это важно
Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным, например Azure Key Vault. Дополнительные сведения о безопасности учетных данных см. в этой статье.
Исходный код | Пакет (npm) | Примеры
Предпосылки
- подписка Azure — создайте бесплатную учетную запись.
- Версии Node.js LTS
- Azure CLI , используемый для проверки подлинности без пароля в локальной среде разработки, создайте необходимый контекст, выполнив вход с помощью Azure CLI.
- Ресурс Azure OpenAI, созданный в поддерживаемом регионе (см. раздел "Доступность региона"). Дополнительные сведения см. в статье "Создание ресурса" и развертывание модели с помощью Azure OpenAI.
Предварительные требования для идентификатора Microsoft Entra
Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо:
- Установите Azure CLI, используемый для проверки подлинности без ключа с помощью идентификатора Microsoft Entra.
- Назначьте роль
Cognitive Services Userсвоему аккаунту пользователя. Роли можно назначить в портале Azure в разделе Контроль доступа (IAM)>Добавить назначение ролей.
Настройка
Создайте новую папку
synthesis-quickstartи перейдите в папку быстрого запуска, используя следующую команду:mkdir synthesis-quickstart && cd synthesis-quickstartСоздайте
package.jsonс помощью следующей команды:npm init -yУстановите клиентскую библиотеку OpenAI для JavaScript с помощью:
npm install openaiДля рекомендуемой аутентификации без пароля:
npm install @azure/identity
Получение сведений о ресурсе
Чтобы проверить подлинность приложения с помощью ресурса Azure OpenAI, необходимо получить следующие сведения:
| Имя переменной | Ценность |
|---|---|
AZURE_OPENAI_ENDPOINT |
Это значение можно найти в разделе "Ключи и конечная точка доступа" при просмотре ресурса на портале Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Это значение будет соответствовать пользовательскому имени, которое вы выбрали при развертывании модели. Это значение можно найти в разделе Управление ресурсами>Развертывание моделей на портале Azure. |
Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.
Осторожность
Чтобы использовать рекомендуемую проверку подлинности без ключа с пакетом SDK, убедитесь, что AZURE_OPENAI_API_KEY переменная среды не задана.
Создание файла речи
index.jsСоздайте файл со следующим кодом:const { writeFile } = require("fs/promises"); const { AzureOpenAI } = require("openai"); const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity"); require("openai/shims/node"); // You will need to set these environment variables or edit the following values const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint"; const speechFilePath = "<path to save the speech file>"; // Required Azure OpenAI deployment name and API version const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "tts"; const apiVersion = process.env.OPENAI_API_VERSION || "2024-08-01-preview"; // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); function getClient() { return new AzureOpenAI({ endpoint, azureADTokenProvider, apiVersion, deployment: deploymentName, }); } async function generateAudioStream( client, params ) { const response = await client.audio.speech.create(params); if (response.ok) return response.body; throw new Error(`Failed to generate audio stream: ${response.statusText}`); } export async function main() { console.log("== Text to Speech Sample =="); const client = getClient(); const streamToRead = await generateAudioStream(client, { model: deploymentName, voice: "alloy", input: "the quick brown chicken jumped over the lazy dogs", }); console.log(`Streaming response to ${speechFilePath}`); await writeFile(speechFilePath, streamToRead); console.log("Finished streaming"); } main().catch((err) => { console.error("The sample encountered an error:", err); });Войдите в Azure с помощью следующей команды:
az loginЗапустите файл JavaScript.
node index.js
Исходный код | Пакет (npm) | Примеры
Предпосылки
- подписка Azure — создайте бесплатную учетную запись.
- Версии Node.js LTS
- Машинописный текст
- Azure CLI , используемый для проверки подлинности без пароля в локальной среде разработки, создайте необходимый контекст, выполнив вход с помощью Azure CLI.
- Ресурс Azure OpenAI, созданный в поддерживаемом регионе (см. раздел "Доступность региона"). Дополнительные сведения см. в статье "Создание ресурса" и развертывание модели с помощью Azure OpenAI.
Предварительные требования для идентификатора Microsoft Entra
Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо:
- Установите Azure CLI, используемый для проверки подлинности без ключа с помощью идентификатора Microsoft Entra.
- Назначьте роль
Cognitive Services Userсвоему аккаунту пользователя. Роли можно назначить в портале Azure в разделе Контроль доступа (IAM)>Добавить назначение ролей.
Настройка
Создайте новую папку
assistants-quickstartи перейдите в папку быстрого запуска, используя следующую команду:mkdir assistants-quickstart && cd assistants-quickstartСоздайте
package.jsonс помощью следующей команды:npm init -yОбновите
package.jsonна ECMAScript с помощью следующей команды:npm pkg set type=moduleУстановите клиентскую библиотеку OpenAI для JavaScript с помощью:
npm install openaiДля рекомендуемой аутентификации без пароля:
npm install @azure/identity
Получение сведений о ресурсе
Чтобы проверить подлинность приложения с помощью ресурса Azure OpenAI, необходимо получить следующие сведения:
| Имя переменной | Ценность |
|---|---|
AZURE_OPENAI_ENDPOINT |
Это значение можно найти в разделе "Ключи и конечная точка доступа" при просмотре ресурса на портале Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Это значение будет соответствовать пользовательскому имени, которое вы выбрали при развертывании модели. Это значение можно найти в разделе Управление ресурсами>Развертывание моделей на портале Azure. |
Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.
Осторожность
Чтобы использовать рекомендуемую проверку подлинности без ключа с пакетом SDK, убедитесь, что AZURE_OPENAI_API_KEY переменная среды не задана.
Создание файла речи
index.tsСоздайте файл со следующим кодом:import { writeFile } from "fs/promises"; import { AzureOpenAI } from "openai"; import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; import type { SpeechCreateParams } from "openai/resources/audio/speech"; import "openai/shims/node"; // You will need to set these environment variables or edit the following values const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint"; const speechFilePath = "<path to save the speech file>"; // Required Azure OpenAI deployment name and API version const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "tts"; const apiVersion = process.env.OPENAI_API_VERSION || "2025-04-01-preview"; // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); function getClient(): AzureOpenAI { return new AzureOpenAI({ endpoint, azureADTokenProvider, apiVersion, deployment: deploymentName, }); } async function generateAudioStream( client: AzureOpenAI, params: SpeechCreateParams ): Promise<NodeJS.ReadableStream> { const response = await client.audio.speech.create(params); if (response.ok) return response.body; throw new Error(`Failed to generate audio stream: ${response.statusText}`); } export async function main() { console.log("== Text to Speech Sample =="); const client = getClient(); const streamToRead = await generateAudioStream(client, { model: deploymentName, voice: "alloy", input: "the quick brown chicken jumped over the lazy dogs", }); console.log(`Streaming response to ${speechFilePath}`); await writeFile(speechFilePath, streamToRead); console.log("Finished streaming"); } main().catch((err) => { console.error("The sample encountered an error:", err); });Необходим импорт
"openai/shims/node", когда код выполняется в среде Node.js. Гарантирует, что выходной тип методаclient.audio.speech.createправильно установлен наNodeJS.ReadableStream.tsconfig.jsonСоздайте файл для транспиля кода TypeScript и скопируйте следующий код для ECMAScript.{ "compilerOptions": { "module": "NodeNext", "target": "ES2022", // Supports top-level await "moduleResolution": "NodeNext", "skipLibCheck": true, // Avoid type errors from node_modules "strict": true // Enable strict type-checking options }, "include": ["*.ts"] }Транспилировать код с TypeScript на JavaScript.
tscВойдите в Azure с помощью следующей команды:
az loginВыполните следующую команду, чтобы запустить код:
node index.js
Предпосылки
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Ресурс Azure OpenAI с моделью преобразования текста в речь (например,
tts, развернутая в поддерживаемом регионе). Дополнительные сведения см. в статье "Создание ресурса" и развертывание модели с помощью Azure OpenAI. - Пакет SDK для .NET 8.0
Предварительные требования для идентификатора Microsoft Entra
Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо:
- Установите Azure CLI, используемый для проверки подлинности без ключа с помощью идентификатора Microsoft Entra.
- Назначьте роль
Cognitive Services Userсвоему аккаунту пользователя. Роли можно назначить в портале Azure в разделе Контроль доступа (IAM)>Добавить назначение ролей.
Настройка
Создайте новую папку
to-speech-quickstartи перейдите в папку быстрого запуска, используя следующую команду:mkdir to-speech-quickstart && cd to-speech-quickstartСоздайте консольное приложение со следующей командой:
dotnet new consoleУстановите клиентскую библиотеку OpenAI .NET с помощью команды dotnet add package:
dotnet add package Azure.AI.OpenAIДля рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra установите пакет Azure.Identity с помощью:
dotnet add package Azure.IdentityДля рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra войдите в Azure с помощью следующей команды:
az login
Получение сведений о ресурсе
Чтобы проверить подлинность приложения с помощью ресурса Azure OpenAI, необходимо получить следующие сведения:
| Имя переменной | Ценность |
|---|---|
AZURE_OPENAI_ENDPOINT |
Это значение можно найти в разделе "Ключи и конечная точка доступа" при просмотре ресурса на портале Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Это значение будет соответствовать пользовательскому имени, которое вы выбрали при развертывании модели. Это значение можно найти в разделе Управление ресурсами>Развертывание моделей на портале Azure. |
Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.
Выполните быстрый старт
Пример кода в этом кратком руководстве использует идентификатор Microsoft Entra для рекомендуемой проверки подлинности без ключей. Если вы предпочитаете использовать ключ API, можно заменить DefaultAzureCredential объект AzureKeyCredential объектом.
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
Замечание
Вы можете получить примеры аудиофайлов, например wikipediaOcelot.wav, из репозитория пакета SDK службы "Речь Azure" в Foundry Tools на сайте GitHub.
Чтобы запустить быстрый старт, выполните следующие действия.
Замените содержимое
Program.csследующим кодом и обновите заполнительные значения на собственные.using Azure; using Azure.AI.OpenAI; using Azure.Identity; // Required for Passwordless auth var endpoint = new Uri( Environment.GetEnvironmentVariable("YOUR_OPENAI_ENDPOINT") ?? throw new ArgumentNullException()); var credentials = new DefaultAzureCredential(); // Use this line for key auth // var credentials = new AzureKeyCredential( // Environment.GetEnvironmentVariable("YOUR_OPENAI_KEY") ?? throw new ArgumentNullException()); var deploymentName = "tts"; // Default deployment name, update with your own if necessary var speechFilePath = "YOUR_AUDIO_FILE_PATH"; AzureOpenAIClient openAIClient = new AzureOpenAIClient(endpoint, credentials); AudioClient audioClient = openAIClient.GetAudioClient(deploymentName); var result = await audioClient.GenerateSpeechAsync( "the quick brown chicken jumped over the lazy dogs"); Console.WriteLine("Streaming response to ${speechFilePath}"); await File.WriteAllBytesAsync(speechFilePath, result.Value.ToArray()); Console.WriteLine("Finished streaming");Запустите приложение с помощью
dotnet runкоманды или кнопки запуска в верхней части Visual Studio:dotnet run
Выходные данные
Приложение создаст звуковой файл в расположении, указанном для переменной speechFilePath . Воспроизводите файл на устройстве, чтобы услышать созданный звук.
Очистите ресурсы
Если вы хотите очистить и удалить ресурс Azure OpenAI, его можно удалить. Перед удалением ресурса необходимо сначала удалить все развернутые модели.
Дальнейшие шаги
- Дополнительные сведения о работе с текстом для речи с помощью Azure OpenAI см. в справочной документации по Azure OpenAI.
- Дополнительные примеры см. в репозитории GitHub в Azure OpenAI Samples