Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется только к:Портал Foundry (классический). Эта статья недоступна для нового портала Foundry.
Дополнительные сведения о новом портале.
Примечание
Содержание в новой документации Microsoft Foundry может открываться по ссылкам в этой статье вместо документации Foundry (классической версии), которую вы просматриваете сейчас.
В этом кратком руководстве показано, как конвертировать текст в речь с помощью голосов Azure OpenAI.
Доступные голоса: alloy, echo, fable, onyx, , novaи shimmer. Для получения дополнительной информации см. справочную документацию Azure OpenAI по технологии преобразования текста в речь.
Необходимые условия
- Подписка Azure: Создайте бесплатно.
- Ресурс Azure OpenAI, созданный в регионе Центрально-Северных США или Центральной Швеции с развернутой моделью
tts-1илиtts-1-hd. Дополнительные сведения см. в разделе Создание ресурса и развертывание модели с помощью Azure OpenAI.
Настройка
Получение ключа и конечной точки
Чтобы успешно вызвать Azure OpenAI, требуется endpoint и key.
| Имя переменной | Значение |
|---|---|
AZURE_OPENAI_ENDPOINT |
Конечная точка службы находится в разделе https://docs-test-001.openai.azure.com/ |
AZURE_OPENAI_API_KEY |
Это значение можно найти в разделе KEY1, либо KEY2. |
Перейдите к ресурсу на портале Azure.
Конечная точка и ключи можно найти в разделе "Управление ресурсами". Скопируйте конечную точку и ключ доступа, так как требуется для проверки подлинности вызовов API. Вы можете использовать либо KEY1, либо KEY2. Всегда наличие двух ключей позволяет безопасно поворачивать и повторно создавать ключи без нарушения работы службы.
Переменные среды
Создайте и назначьте переменные постоянной среды для ключа и конечной точки.
Важно
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. Если вы используете ключ API, сохраните его безопасно в Azure Key Vault. Для получения дополнительной информации о безопасном использовании ключей API в ваших приложениях, см. ключи API в Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
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.
- Ресурс OpenAI Azure, созданный в поддерживаемом регионе (см. Регион доступности). Дополнительные сведения см. в разделе Создание ресурса и развертывание модели с помощью Azure OpenAI.
предварительные требования Microsoft Entra ID
Для рекомендуемой проверки подлинности без ключа с помощью Microsoft Entra ID необходимо:
- Установите Azure CLI, который используется для безключевой аутентификации в Microsoft Entra ID.
- Назначьте
Cognitive Services Userроль вашей учетной записи пользователя. Роли можно назначить на портале Azure в разделе Access control (IAM)>Add role assignment.
Настройка
Создайте новую папку
synthesis-quickstartи перейдите в папку быстрого запуска с помощью следующей команды:mkdir synthesis-quickstart && cd synthesis-quickstartСоздайте
package.jsonс помощью следующей команды:npm init -yУстановите клиентскую библиотеку OpenAI для JavaScript с помощью:
npm install openaiДля рекомендуемой проверки подлинности без пароля:
npm install @azure/identity
Получение сведений о ресурсе
Чтобы проверить подлинность приложения с помощью ресурса OpenAI Azure, необходимо получить следующие сведения:
| Имя переменной | Значение |
|---|---|
AZURE_OPENAI_ENDPOINT |
Это значение можно найти в разделе Keys и Endpoint при изучении ресурса на портале Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Это значение будет соответствовать пользовательскому названию, которое вы выбрали при развертывании модели. Это значение можно найти в разделе Resource Management>Model Deployments на портале 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://ai.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 версии
- Typescript
- Azure CLI используется для проверки подлинности без пароля в локальной среде разработки, создайте необходимый контекст, выполнив вход с помощью Azure CLI.
- Ресурс OpenAI Azure, созданный в поддерживаемом регионе (см. Регион доступности). Дополнительные сведения см. в разделе Создание ресурса и развертывание модели с помощью Azure OpenAI.
предварительные требования Microsoft Entra ID
Для рекомендуемой проверки подлинности без ключа с помощью Microsoft Entra ID необходимо:
- Установите Azure CLI, который используется для безключевой аутентификации в Microsoft Entra ID.
- Назначьте
Cognitive Services Userроль вашей учетной записи пользователя. Роли можно назначить на портале Azure в разделе Access control (IAM)>Add role assignment.
Настройка
Создайте новую папку
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
Получение сведений о ресурсе
Чтобы проверить подлинность приложения с помощью ресурса OpenAI Azure, необходимо получить следующие сведения:
| Имя переменной | Значение |
|---|---|
AZURE_OPENAI_ENDPOINT |
Это значение можно найти в разделе Keys и Endpoint при изучении ресурса на портале Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Это значение будет соответствовать пользовательскому названию, которое вы выбрали при развертывании модели. Это значение можно найти в разделе Resource Management>Model Deployments на портале 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://ai.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 с моделью преобразования текста в речь (например,
), развернутой в поддерживаемом регионе . Дополнительные сведения см. в разделе Создание ресурса и развертывание модели с помощью Azure OpenAI. - .NET пакет SDK 8.0
предварительные требования Microsoft Entra ID
Для рекомендуемой проверки подлинности без ключа с помощью Microsoft Entra ID необходимо:
- Установите Azure CLI, который используется для безключевой аутентификации в Microsoft Entra ID.
- Назначьте
Cognitive Services Userроль вашей учетной записи пользователя. Роли можно назначить на портале Azure в разделе Access control (IAM)>Add role assignment.
Настройка
Создайте новую папку
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 ID установите пакет Azure.Identity с помощью:
dotnet add package Azure.IdentityДля рекомендуемой безключевой аутентификации с помощью Microsoft Entra ID выполните вход в Azure с помощью следующей команды:
az login
Получение сведений о ресурсе
Чтобы проверить подлинность приложения с помощью ресурса OpenAI Azure, необходимо получить следующие сведения:
| Имя переменной | Значение |
|---|---|
AZURE_OPENAI_ENDPOINT |
Это значение можно найти в разделе Keys и Endpoint при изучении ресурса на портале Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Это значение будет соответствовать пользовательскому названию, которое вы выбрали при развертывании модели. Это значение можно найти в разделе Resource Management>Model Deployments на портале Azure. |
Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.
Запустите быстрый старт
Пример кода в этом кратком руководстве использует Microsoft Entra ID для рекомендуемой аутентификации без использования ключей. Если вы предпочитаете использовать ключ API, можно заменить DefaultAzureCredential объект AzureKeyCredential объектом.
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
Примечание
Вы можете получить примеры аудиофайлов, например wikipediaOcelot.wav, из репозитория Foundry Tools SDK для Azure Speech на 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