Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы используете 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. Кроме того, можно найти конечную точку на странице "Развертывания " на портале Azure AI 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. |
OPENAI_API_VERSION |
Дополнительные сведения о версиях API. Вы можете изменить версию в коде или использовать переменную среды. |
Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.
Осторожность
Чтобы использовать рекомендуемую проверку подлинности без ключа с пакетом 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. |
OPENAI_API_VERSION |
Дополнительные сведения о версиях API. Вы можете изменить версию в коде или использовать переменную среды. |
Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.
Осторожность
Чтобы использовать рекомендуемую проверку подлинности без ключа с пакетом 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. |
OPENAI_API_VERSION |
Дополнительные сведения о версиях API. Вы можете изменить версию в коде или использовать переменную среды. |
Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.
Выполните быстрый старт
Пример кода в этом кратком руководстве использует идентификатор Microsoft Entra для рекомендуемой проверки подлинности без ключей. Если вы предпочитаете использовать ключ API, можно заменить DefaultAzureCredential
объект AzureKeyCredential
объектом.
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
Замечание
Вы можете получить примеры аудиофайлов, например wikipediaOcelot.wav, из репозитория пакета SDK службы "Речь" azure AI на сайте 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