Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве попробуйте модель преобразования текста в речь из Azure Speech в инструментах Foundry, используя Microsoft Foundry.
Предварительные требования
- Подписка Azure. Создайте аккаунт бесплатно.
- Проект компании Foundry. Если вам нужно создать проект, см. статью "Создание проекта Microsoft Foundry".
Попробуйте функцию преобразования текста в речь
Попробуйте воспроизвести текст вслух в портале Foundry, выполнив следующие действия:
- Войдите в Microsoft Foundry. Убедитесь, что переключатель New Foundry включен. Эти действия относятся к Foundry (new).
- Выберите "Сборка" в правом верхнем меню.
- Выберите модели на левой панели.
- На вкладке AI Services показаны модели искусственного интеллекта Azure, готовые к использованию на портале Foundry. Выберите Azure Speech - преобразователь текста в речь, чтобы открыть игровую площадку преобразования текста в речь.
- Выберите предварительно созданный голос из раскрывающегося меню и при необходимости настройте его с помощью ползунок параметров поставщика.
- Введите пример текста в текстовом поле.
- Нажмите «Воспроизвести», чтобы прослушать, как синтетический голос читает ваш текст.
Другие функции Foundry (новые)
На портале Foundry (new) доступны следующие функции распознавания речи:
Речевой ввод в текст REST API справочник | Речевой ввод в текст REST API для справочной информации о коротких аудиозаписях | Дополнительные примеры на GitHub
С помощью Azure Speech в Foundry Tools можно запустить приложение, которое синтезирует голос, похожий на человеческий, чтобы озвучивать текст. Вы можете изменить голос, ввести текст и прослушивать выходные данные на динамике компьютера.
Совет
Вы можете попробовать преобразование текста в речь в галерее голосов Speech Studio без регистрации или написания кода.
Совет
Попробуйте использовать набор средств Azure Speech Toolkit, чтобы легко создавать и запускать примеры на Visual Studio Code.
Предварительные требования
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создайте ресурс Foundry для Speech на портале Azure.
- Получите ключ ресурса и регион службы речи. После развертывания ресурса Speech выберите Перейти к ресурсу, чтобы просмотреть ключи и управлять ими.
Настройка переменных среды
Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем Microsoft Entra ID проверку подлинности с помощью управляемых удостоверений для ресурсов Azure, чтобы избежать хранения учетных данных в приложениях, работающих в облаке.
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничивайте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать переменную среды
SPEECH_KEY, замените your-key одним из ключей вашего ресурса. - Чтобы задать переменную среды
SPEECH_REGION, замените your-region на один из регионов, соответствующих вашему ресурсу. - Чтобы задать
ENDPOINTпеременную среды, заменитеyour-endpointфактической конечной точкой ресурса распознавания речи.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint
Примечание.
Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.
После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.
Синтезирование речи в файл
В командной строке выполните приведенную ниже команду cURL. При необходимости можно переименовать output.mp3 в другое имя выходного файла.
curl --location --request POST "https://%SPEECH_REGION%.tts.speech.microsoft.com/cognitiveservices/v1" ^
--header "Ocp-Apim-Subscription-Key: %SPEECH_KEY%" ^
--header "Content-Type: application/ssml+xml" ^
--header "X-Microsoft-OutputFormat: audio-16khz-128kbitrate-mono-mp3" ^
--header "User-Agent: curl" ^
--data-raw "<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Female' name='en-US-Ava:DragonHDLatestNeural'>my voice is my passport verify me</voice></speak>" --output output.mp3
Внимание
Убедитесь, что вы задали переменные среды SPEECH_KEY и SPEECH_REGION. Если эти переменные не заданы, пример завершится с сообщением об ошибке.
Предоставленный текст должен выводиться в звуковой файл с именем output.mp3.
Чтобы изменить язык синтеза речи, замените en-US-Ava:DragonHDLatestNeural на другой поддерживаемый голос.
Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке Я рад попробовать текст для речи, и вы установили es-ES-Ximena:DragonHDLatestNeural, текст произносится на английском с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.
Для получения дополнительной информации см. REST API преобразования текста в речь.
Замечания
Голоса OpenAI для преобразования текста в речь в Azure Speech в инструментах Foundry
Поддерживаются также голоса для преобразования текста в речь от OpenAI. См. голоса OpenAI для преобразования текста в речь в Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural на поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.
Очистка ресурсов
Вы можете использовать портал Azure или интерфейс командной строки Azure (CLI), чтобы удалить созданный вами ресурс Speech.
Документация по Reference | пакету (PyPi) | Дополнительные примеры на GitHub
С помощью Azure Speech в Foundry Tools можно запустить приложение, которое синтезирует голос, похожий на человеческий, чтобы озвучивать текст. Вы можете изменить голос, ввести текст и прослушивать выходные данные на динамике компьютера.
Совет
Вы можете попробовать преобразование текста в речь в галерее голосов Speech Studio без регистрации или написания кода.
Совет
Попробуйте использовать набор средств Azure Speech Toolkit, чтобы легко создавать и запускать примеры на Visual Studio Code.
Предварительные требования
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создание ресурса служб искусственного интеллекта для службы распознавания речи на портале Azure.
- Получите ключ ресурса службы "Речь" и конечную точку. После развертывания ресурса Speech выберите Перейти к ресурсу, чтобы просмотреть ключи и управлять ими.
Настройка среды
Пакет Speech SDK для Python доступен в виде модуля Python Package Index (PyPI). Пакет SDK для Python совместим с Windows, Linux и macOS.
- На Windows установите распространяемый компонент Microsoft Visual C++ для Visual Studio 2015, 2017, 2019 и 2022 для своей платформы. Установка этого пакета может потребовать перезагрузки.
- В Linux необходимо использовать целевую архитектуру x64.
Установите версию Python версии 3.7 или более поздней. Для получения требований см. Установку SDK для обработки речи.
Настройка переменных среды
Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем Microsoft Entra ID проверку подлинности с помощью управляемых удостоверений для ресурсов Azure, чтобы избежать хранения учетных данных в приложениях, работающих в облаке.
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничивайте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
Чтобы задать переменные среды для ключа ресурса службы "Речь" и конечной точки, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать переменную среды
SPEECH_KEY, замените your-key одним из ключей вашего ресурса. - Чтобы задать
ENDPOINTпеременную среды, замените вашу конечную точку одной из конечных точек вашего ресурса.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint
Примечание.
Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.
После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.
Создание приложения
Выполните следующие действия, чтобы создать консольное приложение.
Откройте окно командной строки в папке, в которой требуется создать проект. Создайте файл с именем speech_synthesis.py.
Выполните команду для установки Speech SDK.
pip install azure-cognitiveservices-speechСкопируйте следующий код в speech_synthesis.py:
import os import azure.cognitiveservices.speech as speechsdk # This example requires environment variables named "SPEECH_KEY" and "ENDPOINT" # Replace with your own subscription key and endpoint, the endpoint is like : "https://YourServiceRegion.api.cognitive.microsoft.com" speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), endpoint=os.environ.get('ENDPOINT')) audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True) # The neural multilingual voice can speak different languages based on the input text. speech_config.speech_synthesis_voice_name='en-US-Ava:DragonHDLatestNeural' speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config) # Get text from the console and synthesize to the default speaker. print("Enter some text that you want to speak >") text = input() speech_synthesis_result = speech_synthesizer.speak_text_async(text).get() if speech_synthesis_result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted: print("Speech synthesized for text [{}]".format(text)) elif speech_synthesis_result.reason == speechsdk.ResultReason.Canceled: cancellation_details = speech_synthesis_result.cancellation_details print("Speech synthesis canceled: {}".format(cancellation_details.reason)) if cancellation_details.reason == speechsdk.CancellationReason.Error: if cancellation_details.error_details: print("Error details: {}".format(cancellation_details.error_details)) print("Did you set the speech resource key and endpoint values?")Чтобы изменить язык синтеза речи, замените
en-US-Ava:DragonHDLatestNeuralна другой поддерживаемый голос.Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке Я рад попробовать текст для речи, и вы установили
es-ES-Ximena:DragonHDLatestNeural, текст произносится на английском с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.Запустите новое консольное приложение, чтобы начать синтез речи на динамик по умолчанию.
python speech_synthesis.pyВведите текст, который требуется произнести. Например, введите Я рад попробовать текст в речь. Выберите клавишу ВВОД, чтобы услышать синтезированную речь.
Enter some text that you want to speak > I'm excited to try text to speech
Замечания
Выбор имени голоса
Голосовые имена соответствуют формату {locale}-{VoiceName}:{VoiceType}, где:
-
locale определяет основной язык и регион голосовой технологии (например,
en-USдля английского языка США,es-ESдля испанского языка). -
VoiceName — уникальный идентификатор для этого голоса (например,
Ava,Andrew) -
VoiceType указывает голосовую технологию (например,
DragonHDLatestNeuralдля нейронных HD голосов,MultilingualNeuralдля многоязычных голосов).
Чтобы найти доступные голоса, выполните приведенные здесь действия.
- Просмотрите Галерею Голосов для интерактивного предварительного прослушивания голосов
- Просмотр полного списка поддерживаемых голосов и всех доступных опций
- Вызов API голосового списка для получения голосовых данных программным способом
Сохранение звука в файл
Чтобы сохранить синтезированную речь в файле вместо воспроизведения в динамике, укажите имя файла в :AudioOutputConfig
# Save to a WAV file instead of playing to speaker
audio_config = speechsdk.audio.AudioOutputConfig(filename="output.wav")
speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config)
speech_synthesis_result = speech_synthesizer.speak_text_async("Hello, world!").get()
Чтобы получить звуковые данные в виде байтов для пользовательской обработки (например, потоковой передачи или преобразования формата), опустите audio_config параметр и получите доступ к свойству результата audio_data :
# Get audio data as bytes
speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=None)
result = speech_synthesizer.speak_text_async("Hello, world!").get()
audio_bytes = result.audio_data # Raw audio bytes
Дополнительные варианты синтеза речи
В этом кратком руководстве для синтеза короткого блока введенного вами текста используется операция speak_text_async. Вы также можете использовать длинный текст из файла и получить более точное управление стилями голоса, просодией и другими параметрами.
- Узнайте
, как синтезировать речь из файла, и ознакомьтесь с обзором языка разметки синтеза речи (SSML) для более точного управления стилями голоса, просодией и другими параметрами. - Смотрите API пакетного преобразования текста в речь для получения информации о синтезе длинных текстов.
Голоса OpenAI для преобразования текста в речь в Azure Speech в инструментах Foundry
Поддерживаются также голоса для преобразования текста в речь от OpenAI. См. голоса OpenAI для преобразования текста в речь в Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural на поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.
Очистка ресурсов
Вы можете использовать портал Azure или интерфейс командной строки Azure (CLI), чтобы удалить созданный вами ресурс Speech.
Документация по Справка | Пакет (NuGet) | Дополнительные примеры на GitHub
С помощью Azure Speech в Foundry Tools можно запустить приложение, которое синтезирует голос, похожий на человеческий, чтобы озвучивать текст. Вы можете изменить голос, ввести текст и прослушивать выходные данные на динамике компьютера.
Совет
Вы можете попробовать преобразование текста в речь в галерее голосов Speech Studio без регистрации или написания кода.
Совет
Попробуйте использовать набор средств Azure Speech Toolkit, чтобы легко создавать и запускать примеры на Visual Studio Code.
Предварительные требования
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создание ресурса служб искусственного интеллекта для службы распознавания речи на портале Azure.
- Получите ключ ресурса службы "Речь" и конечную точку. После развертывания ресурса Speech выберите Перейти к ресурсу, чтобы просмотреть ключи и управлять ими.
Настройка среды
Пакет SDK службы "Речь" доступен как пакет NuGet который реализует .NET Standard 2.0. Установите SDK для речи позже в этом руководстве с помощью консоли. Для получения подробных инструкций по установке см. Установите пакет SDK для речи.
Настройка переменных среды
Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем Microsoft Entra ID проверку подлинности с помощью управляемых удостоверений для ресурсов Azure, чтобы избежать хранения учетных данных в приложениях, работающих в облаке.
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничивайте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
Чтобы задать переменные среды для ключа ресурса службы "Речь" и конечной точки, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать переменную среды
SPEECH_KEY, замените your-key одним из ключей вашего ресурса. - Чтобы задать
ENDPOINTпеременную среды, замените вашу конечную точку одной из конечных точек вашего ресурса.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint
Примечание.
Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.
После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.
Создание приложения
Выполните следующие действия, чтобы создать консольное приложение и установить Speech SDK.
Откройте окно командной строки в папке, в которой требуется создать проект. Выполните эту команду, чтобы создать консольное приложение с помощью интерфейса командной строки .NET.
dotnet new consoleКоманда создает файл Program.cs в каталоге проекта.
Установите пакет SDK службы "Речь" в новом проекте с помощью интерфейса командной строки .NET.
dotnet add package Microsoft.CognitiveServices.SpeechЗамените содержимое Program.cs следующим кодом.
using System; using System.IO; using System.Threading.Tasks; using Microsoft.CognitiveServices.Speech; using Microsoft.CognitiveServices.Speech.Audio; class Program { static void OutputSpeechSynthesisResult(SpeechSynthesisResult speechSynthesisResult, string text) { switch (speechSynthesisResult.Reason) { case ResultReason.SynthesizingAudioCompleted: Console.WriteLine($"Speech synthesized for text: [{text}]"); break; case ResultReason.Canceled: var cancellation = SpeechSynthesisCancellationDetails.FromResult(speechSynthesisResult); Console.WriteLine($"CANCELED: Reason={cancellation.Reason}"); if (cancellation.Reason == CancellationReason.Error) { Console.WriteLine($"CANCELED: ErrorCode={cancellation.ErrorCode}"); Console.WriteLine($"CANCELED: ErrorDetails=[{cancellation.ErrorDetails}]"); Console.WriteLine($"CANCELED: Did you set the speech resource key and endpoint values?"); } break; default: break; } } async static Task Main(string[] args) { // This example requires environment variables named "SPEECH_KEY" and "ENDPOINT" string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY") ?? throw new InvalidOperationException("Set the SPEECH_KEY environment variable."); string endpoint = Environment.GetEnvironmentVariable("ENDPOINT") ?? throw new InvalidOperationException("Set the ENDPOINT environment variable."); var speechConfig = SpeechConfig.FromEndpoint(new Uri(endpoint), speechKey); // The neural multilingual voice can speak different languages based on the input text. speechConfig.SpeechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural"; using (var speechSynthesizer = new SpeechSynthesizer(speechConfig)) { // Get text from the console and synthesize to the default speaker. Console.WriteLine("Enter some text that you want to speak >"); string text = Console.ReadLine(); var speechSynthesisResult = await speechSynthesizer.SpeakTextAsync(text); OutputSpeechSynthesisResult(speechSynthesisResult, text); } Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } }Чтобы изменить язык синтеза речи, замените
en-US-Ava:DragonHDLatestNeuralна другой поддерживаемый голос.Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке я с нетерпением жду возможности попробовать текст в речь и вы устанавливаете
es-ES-Ximena:DragonHDLatestNeuralв качестве языка, текст произносится на английском языке с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.Запустите новое консольное приложение, чтобы начать синтез речи на динамик по умолчанию.
dotnet runВведите текст, который требуется произнести. Например, введите Я рад попробовать текст в речь. Выберите клавишу ВВОД, чтобы услышать синтезированную речь.
Enter some text that you want to speak > I'm excited to try text to speech
Замечания
Выбор имени голоса
Голосовые имена соответствуют формату {locale}-{VoiceName}:{VoiceType}, где:
-
locale определяет основной язык и регион голосовой технологии (например,
en-USдля английского языка США,es-ESдля испанского языка). -
VoiceName — уникальный идентификатор для этого голоса (например,
Ava,Andrew) -
VoiceType указывает голосовую технологию (например,
DragonHDLatestNeuralдля нейронных HD голосов,MultilingualNeuralдля многоязычных голосов).
Чтобы найти доступные голоса, выполните приведенные здесь действия.
- Просмотрите Галерею Голосов для интерактивного предварительного прослушивания голосов
- Просмотр полного списка поддерживаемых голосов и всех доступных опций
- Вызов API голосового списка для получения голосовых данных программным способом
Сохранение звука в файл
Чтобы сохранить синтезированную речь в WAV-файле вместо воспроизведения в динамике, используйте AudioConfig.FromWavFileOutput()следующую команду:
// Save to a WAV file instead of playing to speaker
using var audioConfig = AudioConfig.FromWavFileOutput("output.wav");
using var speechSynthesizer = new SpeechSynthesizer(speechConfig, audioConfig);
await speechSynthesizer.SpeakTextAsync("Hello, world!");
Чтобы получить звуковые данные в виде байтов для пользовательской обработки (например, потоковой передачи или преобразования формата), передайте nullaudioConfig и получите доступ к свойству результата AudioData :
// Get audio data as bytes
using var speechSynthesizer = new SpeechSynthesizer(speechConfig, null);
var result = await speechSynthesizer.SpeakTextAsync("Hello, world!");
byte[] audioBytes = result.AudioData; // Raw audio bytes
Дополнительные варианты синтеза речи
В этом кратком руководстве для синтеза короткого блока введенного вами текста используется операция SpeakTextAsync. Вы также можете использовать длинный текст из файла и получить более точное управление стилями голоса, просодией и другими параметрами.
- Узнайте
, как синтезировать речь из файла, и ознакомьтесь с обзором языка разметки синтеза речи (SSML) для более точного управления стилями голоса, просодией и другими параметрами. - Смотрите API пакетного преобразования текста в речь для получения информации о синтезе длинных текстов.
Голоса OpenAI для преобразования текста в речь в Azure Speech в инструментах Foundry
Поддерживаются также голоса для преобразования текста в речь от OpenAI. См. голоса OpenAI для преобразования текста в речь в Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural на поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.
Очистка ресурсов
Вы можете использовать портал Azure или интерфейс командной строки Azure (CLI), чтобы удалить созданный вами ресурс Speech.
Справочная документация | Пакет (npm) | Дополнительные примеры на GitHub | Исходный код библиотеки
С помощью Azure Speech в Foundry Tools можно запустить приложение, которое синтезирует голос, похожий на человеческий, чтобы озвучивать текст. Вы можете изменить голос, ввести текст и прослушивать выходные данные на динамике компьютера.
Совет
Вы можете попробовать преобразование текста в речь в галерее голосов Speech Studio без регистрации или написания кода.
Совет
Попробуйте использовать набор средств Azure Speech Toolkit, чтобы легко создавать и запускать примеры на Visual Studio Code.
Предварительные требования
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создайте ресурс Foundry для Speech на портале Azure.
- Получите ключ ресурса и регион службы речи. После развертывания ресурса Speech выберите Перейти к ресурсу, чтобы просмотреть ключи и управлять ими.
Настройка
Создайте новую папку
synthesis-quickstartи перейдите в папку быстрого запуска, используя следующую команду:mkdir synthesis-quickstart && cd synthesis-quickstartСоздайте
package.jsonс помощью следующей команды:npm init -yУстановите SDK для распознавания речи в JavaScript с помощью:
npm install microsoft-cognitiveservices-speech-sdk
Получение сведений о ресурсе
Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем Microsoft Entra ID проверку подлинности с помощью управляемых удостоверений для ресурсов Azure, чтобы избежать хранения учетных данных в приложениях, работающих в облаке.
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничивайте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать переменную среды
SPEECH_KEY, замените your-key одним из ключей вашего ресурса. - Чтобы задать переменную среды
SPEECH_REGION, замените your-region на один из регионов, соответствующих вашему ресурсу. - Чтобы задать
ENDPOINTпеременную среды, заменитеyour-endpointфактической конечной точкой ресурса распознавания речи.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint
Примечание.
Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.
После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.
Синтезирование речи в файл
Чтобы перевести речь из файла:
Создайте файл с именем synthesis.js со следующим содержимым:
import { createInterface } from "readline"; import { SpeechConfig, AudioConfig, SpeechSynthesizer, ResultReason } from "microsoft-cognitiveservices-speech-sdk"; function synthesizeSpeech() { const audioFile = "YourAudioFile.wav"; // This example requires environment variables named "ENDPOINT" and "SPEECH_KEY" const speechConfig = SpeechConfig.fromEndpoint(new URL(ENDPOINT), process.env.SPEECH_KEY); const audioConfig = AudioConfig.fromAudioFileOutput(audioFile); // The language of the voice that speaks. speechConfig.speechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural"; // Create the speech synthesizer. const synthesizer = new SpeechSynthesizer(speechConfig, audioConfig); const rl = createInterface({ input: process.stdin, output: process.stdout }); rl.question("Enter some text that you want to speak >\n> ", function (text) { rl.close(); // Start the synthesizer and wait for a result. synthesizer.speakTextAsync(text, function (result) { if (result.reason === ResultReason.SynthesizingAudioCompleted) { console.log("synthesis finished."); } else { console.error("Speech synthesis canceled, " + result.errorDetails + "\nDid you set the speech resource key and region values?"); } synthesizer.close(); }, function (err) { console.trace("err - " + err); synthesizer.close(); }); console.log("Now synthesizing to: " + audioFile); }); } synthesizeSpeech();При synthesis.jsнеобходимости можно переименовать YourAudioFile.wav в другое имя выходного файла.
Чтобы изменить язык синтеза речи, замените
en-US-Ava:DragonHDLatestNeuralна другой поддерживаемый голос.Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке Я рад попробовать текст для речи, и вы установили
es-ES-Ximena:DragonHDLatestNeural, текст произносится на английском с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.Запустите консольное приложение, чтобы начать синтез речи в файл:
node synthesis.js
Выходные данные
В консоли должны появиться следующие выходные данные. Следуйте запросу, чтобы ввести текст, который требуется синтезировать:
Enter some text that you want to speak >
> I'm excited to try text to speech
Now synthesizing to: YourAudioFile.wav
synthesis finished.
Замечания
Дополнительные варианты синтеза речи
В этом кратком руководстве для синтеза короткого блока введенного вами текста используется операция SpeakTextAsync. Вы также можете использовать длинный текст из файла и получить более точное управление стилями голоса, просодией и другими параметрами.
- Узнайте
, как синтезировать речь из файла, и ознакомьтесь с обзором языка разметки синтеза речи (SSML) для более точного управления стилями голоса, просодией и другими параметрами. - Смотрите API пакетного преобразования текста в речь для получения информации о синтезе длинных текстов.
Голоса OpenAI для преобразования текста в речь в Azure Speech в инструментах Foundry
Поддерживаются также голоса для преобразования текста в речь от OpenAI. См. голоса OpenAI для преобразования текста в речь в Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural на поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.
Очистка ресурсов
Вы можете использовать портал Azure или интерфейс командной строки Azure (CLI), чтобы удалить созданный вами ресурс Speech.
Справочная документация | Дополнительные примеры на GitHub
С помощью Azure Speech в Foundry Tools можно запустить приложение, которое синтезирует голос, похожий на человеческий, чтобы озвучивать текст. Вы можете изменить голос, ввести текст и прослушивать выходные данные на динамике компьютера.
Совет
Вы можете попробовать преобразование текста в речь в галерее голосов Speech Studio без регистрации или написания кода.
Совет
Попробуйте использовать набор средств Azure Speech Toolkit, чтобы легко создавать и запускать примеры на Visual Studio Code.
Предварительные требования
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создание ресурса служб искусственного интеллекта для службы распознавания речи на портале Azure.
- Получите ключ ресурса службы "Речь" и конечную точку. После развертывания ресурса Speech выберите Перейти к ресурсу, чтобы просмотреть ключи и управлять ими.
Настройка среды
Чтобы настроить среду, установите Speech SDK. Пример в этом кратком руководстве работает с средой выполнения Java.
Установите Apache Maven. Затем выполните команду
mvn -v, чтобы подтвердить успешную установку.Создайте файл pom.xml в корне проекта и скопируйте в него следующий код:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.microsoft.cognitiveservices.speech.samples</groupId> <artifactId>quickstart-eclipse</artifactId> <version>1.0.0-SNAPSHOT</version> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.microsoft.cognitiveservices.speech</groupId> <artifactId>client-sdk</artifactId> <version>1.43.0</version> </dependency> </dependencies> </project>Установите пакет SDK Speech и его зависимости.
mvn clean dependency:copy-dependencies
Настройка переменных среды
Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем Microsoft Entra ID проверку подлинности с помощью управляемых удостоверений для ресурсов Azure, чтобы избежать хранения учетных данных в приложениях, работающих в облаке.
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничивайте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
Чтобы задать переменные среды для ключа ресурса службы "Речь" и конечной точки, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать переменную среды
SPEECH_KEY, замените your-key одним из ключей вашего ресурса. - Чтобы задать
ENDPOINTпеременную среды, замените вашу конечную точку одной из конечных точек вашего ресурса.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint
Примечание.
Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.
После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.
Создание приложения
Выполните следующие действия, чтобы создать консольное приложение для распознавания речи.
Создайте файл с именем SpeechSynthesis.java в том же корневом каталоге проекта.
Скопируйте следующий код в SpeechSynthesis.java:
import com.microsoft.cognitiveservices.speech.*; import com.microsoft.cognitiveservices.speech.audio.*; import java.net.URI; import java.net.URISyntaxException; import java.util.Scanner; import java.util.concurrent.ExecutionException; public class SpeechSynthesis { // This example requires environment variables named "SPEECH_KEY" and "ENDPOINT" private static String speechKey = System.getenv("SPEECH_KEY"); private static String endpoint = System.getenv("ENDPOINT"); public static void main(String[] args) throws InterruptedException, ExecutionException, URISyntaxException { SpeechConfig speechConfig = SpeechConfig.fromEndpoint(new URI(endpoint), speechKey); speechConfig.setSpeechSynthesisVoiceName("en-US-Ava:DragonHDLatestNeural"); SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer(speechConfig); // Get text from the console and synthesize to the default speaker. System.out.println("Enter some text that you want to speak >"); String text = new Scanner(System.in).nextLine(); if (text.isEmpty()) { return; } SpeechSynthesisResult speechSynthesisResult = speechSynthesizer.SpeakTextAsync(text).get(); if (speechSynthesisResult.getReason() == ResultReason.SynthesizingAudioCompleted) { System.out.println("Speech synthesized to speaker for text [" + text + "]"); } else if (speechSynthesisResult.getReason() == ResultReason.Canceled) { SpeechSynthesisCancellationDetails cancellation = SpeechSynthesisCancellationDetails.fromResult(speechSynthesisResult); System.out.println("CANCELED: Reason=" + cancellation.getReason()); if (cancellation.getReason() == CancellationReason.Error) { System.out.println("CANCELED: ErrorCode=" + cancellation.getErrorCode()); System.out.println("CANCELED: ErrorDetails=" + cancellation.getErrorDetails()); System.out.println("CANCELED: Did you set the speech resource key and endpoint values?"); } } System.exit(0); } }Чтобы изменить язык синтеза речи, замените
en-US-Ava:DragonHDLatestNeuralна другой поддерживаемый голос.Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке Я рад попробовать текст для речи, и вы установили
es-ES-Ximena:DragonHDLatestNeural, текст произносится на английском с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.Запустите консольное приложение для вывода синтеза речи на динамик по умолчанию.
javac SpeechSynthesis.java -cp ".;target\dependency\*" java -cp ".;target\dependency\*" SpeechSynthesisВведите текст, который требуется произнести. Например, введите Я рад попробовать текст в речь. Выберите клавишу ВВОД, чтобы услышать синтезированную речь.
Enter some text that you want to speak > I'm excited to try text to speech
Замечания
Дополнительные варианты синтеза речи
В этом кратком руководстве для синтеза короткого блока введенного вами текста используется операция SpeakTextAsync. Вы также можете использовать длинный текст из файла и получить более точное управление стилями голоса, просодией и другими параметрами.
- Узнайте
, как синтезировать речь из файла, и ознакомьтесь с обзором языка разметки синтеза речи (SSML) для более точного управления стилями голоса, просодией и другими параметрами. - Смотрите API пакетного преобразования текста в речь для получения информации о синтезе длинных текстов.
Голоса OpenAI для преобразования текста в речь в Azure Speech в инструментах Foundry
Поддерживаются также голоса для преобразования текста в речь от OpenAI. См. голоса OpenAI для преобразования текста в речь в Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural на поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.
Очистка ресурсов
Вы можете использовать портал Azure или интерфейс командной строки Azure (CLI), чтобы удалить созданный вами ресурс Speech.
Документация по Справка | Пакет (NuGet) | Дополнительные примеры на GitHub
С помощью Azure Speech в Foundry Tools можно запустить приложение, которое синтезирует голос, похожий на человеческий, чтобы озвучивать текст. Вы можете изменить голос, ввести текст и прослушивать выходные данные на динамике компьютера.
Совет
Вы можете попробовать преобразование текста в речь в галерее голосов Speech Studio без регистрации или написания кода.
Совет
Попробуйте использовать набор средств Azure Speech Toolkit, чтобы легко создавать и запускать примеры на Visual Studio Code.
Предварительные требования
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создание ресурса служб искусственного интеллекта для службы распознавания речи на портале Azure.
- Получите ключ ресурса службы "Речь" и конечную точку. После развертывания ресурса Speech выберите Перейти к ресурсу, чтобы просмотреть ключи и управлять ими.
Настройка среды
Пакет SDK службы "Речь" доступен как пакет NuGet который реализует .NET Standard 2.0. Установите пакет SDK службы "Речь" далее в этом руководстве. Для получения подробных инструкций по установке см. Установите пакет SDK для речи.
Настройка переменных среды
Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем Microsoft Entra ID проверку подлинности с помощью управляемых удостоверений для ресурсов Azure, чтобы избежать хранения учетных данных в приложениях, работающих в облаке.
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничивайте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
Чтобы задать переменные среды для ключа ресурса службы "Речь" и конечной точки, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать переменную среды
SPEECH_KEY, замените your-key одним из ключей вашего ресурса. - Чтобы задать
ENDPOINTпеременную среды, замените вашу конечную точку одной из конечных точек вашего ресурса.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint
Примечание.
Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.
После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.
Создание приложения
Выполните следующие действия, чтобы создать консольное приложение и установить Speech SDK.
Создайте консольный проект C++ в Visual Studio Community с именем
SpeechSynthesis.Замените содержимое SpeechSynthesis.cpp следующим кодом:
#include <iostream> #include <stdlib.h> #include <speechapi_cxx.h> using namespace Microsoft::CognitiveServices::Speech; using namespace Microsoft::CognitiveServices::Speech::Audio; std::string GetEnvironmentVariable(const char* name); int main() { // This example requires environment variables named "SPEECH_KEY" and "ENDPOINT" auto speechKey = GetEnvironmentVariable("SPEECH_KEY"); auto endpoint = GetEnvironmentVariable("ENDPOINT"); if (std::string(speechKey).empty() || std::string(endpoint).empty()) { std::cout << "Please set both SPEECH_KEY and ENDPOINT environment variables." << std::endl; return -1; } auto speechConfig = SpeechConfig::FromEndpoint(endpoint, speechKey); // The neural multilingual voice can speak different languages based on the input text. speechConfig->SetSpeechSynthesisVoiceName("en-US-AriaNeural"); auto speechSynthesizer = SpeechSynthesizer::FromConfig(speechConfig); // Get text from the console and synthesize to the default speaker. std::cout << "Enter some text that you want to speak >" << std::endl; std::string text; getline(std::cin, text); auto result = speechSynthesizer->SpeakTextAsync(text).get(); // Checks result. if (result->Reason == ResultReason::SynthesizingAudioCompleted) { std::cout << "Speech synthesized to speaker for text [" << text << "]" << std::endl; } else if (result->Reason == ResultReason::Canceled) { auto cancellation = SpeechSynthesisCancellationDetails::FromResult(result); std::cout << "CANCELED: Reason=" << (int)cancellation->Reason << std::endl; if (cancellation->Reason == CancellationReason::Error) { std::cout << "CANCELED: ErrorCode=" << (int)cancellation->ErrorCode << std::endl; std::cout << "CANCELED: ErrorDetails=[" << cancellation->ErrorDetails << "]" << std::endl; std::cout << "CANCELED: Did you set the speech resource key and endpoint values?" << std::endl; } } std::cout << "Press enter to exit..." << std::endl; std::cin.get(); } std::string GetEnvironmentVariable(const char* name) { #if defined(_MSC_VER) size_t requiredSize = 0; (void)getenv_s(&requiredSize, nullptr, 0, name); if (requiredSize == 0) { return ""; } auto buffer = std::make_unique<char[]>(requiredSize); (void)getenv_s(&requiredSize, buffer.get(), requiredSize, name); return buffer.get(); #else auto value = getenv(name); return value ? value : ""; #endif }Выберите Tools>Nuget диспетчер пакетов>диспетчер пакетов console. В консоли диспетчер пакетов выполните следующую команду:
Install-Package Microsoft.CognitiveServices.SpeechЧтобы изменить язык синтеза речи, замените
en-US-Ava:DragonHDLatestNeuralна другой поддерживаемый голос.Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке Я рад попробовать текст для речи, и вы установили
es-ES-Ximena:DragonHDLatestNeural, текст произносится на английском с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.Чтобы начать синтез речи с динамиком по умолчанию, создайте и запустите новое консольное приложение.
Введите текст, который требуется произнести. Например, введите Я рад попробовать текст в речь. Выберите клавишу ВВОД, чтобы услышать синтезированную речь.
Enter some text that you want to speak > I'm excited to try text to speech
Замечания
Дополнительные варианты синтеза речи
В этом кратком руководстве для синтеза короткого блока введенного вами текста используется операция SpeakTextAsync. Вы также можете использовать длинный текст из файла и получить более точное управление стилями голоса, просодией и другими параметрами.
- Узнайте
, как синтезировать речь из файла, и ознакомьтесь с обзором языка разметки синтеза речи (SSML) для более точного управления стилями голоса, просодией и другими параметрами. - Смотрите API пакетного преобразования текста в речь для получения информации о синтезе длинных текстов.
Голоса OpenAI для преобразования текста в речь в Azure Speech в инструментах Foundry
Поддерживаются также голоса для преобразования текста в речь от OpenAI. См. голоса OpenAI для преобразования текста в речь в Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural на поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.
Очистка ресурсов
Вы можете использовать портал Azure или интерфейс командной строки Azure (CLI), чтобы удалить созданный вами ресурс Speech.
Справочная документация | Package (Go) | Additional samples on GitHub
С помощью Azure Speech в Foundry Tools можно запустить приложение, которое синтезирует голос, похожий на человеческий, чтобы озвучивать текст. Вы можете изменить голос, ввести текст и прослушивать выходные данные на динамике компьютера.
Совет
Вы можете попробовать преобразование текста в речь в галерее голосов Speech Studio без регистрации или написания кода.
Совет
Попробуйте использовать набор средств Azure Speech Toolkit, чтобы легко создавать и запускать примеры на Visual Studio Code.
Предварительные требования
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создание ресурса служб искусственного интеллекта для службы распознавания речи на портале Azure.
- Получите ключ ресурса службы "Речь" и конечную точку. После развертывания ресурса Speech выберите Перейти к ресурсу, чтобы просмотреть ключи и управлять ими.
Настройка среды
Пакет SDK для работы с речью доступен как пакет Go. Установите Speech SDK позже в этом руководстве с помощью терминала. Для получения подробных инструкций по установке см. Установите пакет SDK для речи.
Настройка переменных среды
Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем Microsoft Entra ID проверку подлинности с помощью управляемых удостоверений для ресурсов Azure, чтобы избежать хранения учетных данных в приложениях, работающих в облаке.
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничивайте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
Чтобы задать переменные среды для ключа ресурса службы "Речь" и конечной точки, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать переменную среды
SPEECH_KEY, замените your-key одним из ключей вашего ресурса. - Чтобы задать
ENDPOINTпеременную среды, замените вашу конечную точку одной из конечных точек вашего ресурса.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint
Примечание.
Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.
После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.
Создание приложения
Выполните следующие действия, чтобы создать приложение Go и установить Speech SDK.
Откройте окно терминала в папке, в которой требуется новый проект. Создайте файл с именем main.go.
Установите пакет SDK распознавания речи в новом проекте с помощью интерфейса командной строки (CLI) Go.
go get github.com/Microsoft/cognitive-services-speech-sdk-goЗамените содержимое main.go следующим кодом.
package main import ( "bufio" "fmt" "os" "strings" "github.com/Microsoft/cognitive-services-speech-sdk-go/audio" "github.com/Microsoft/cognitive-services-speech-sdk-go/common" "github.com/Microsoft/cognitive-services-speech-sdk-go/speech" ) func outputSpeechSynthesisResult(result *speech.SpeechSynthesisResult, text string) { switch result.Reason { case common.SynthesizingAudioCompleted: fmt.Printf("Speech synthesized for text: [%s]\n", text) case common.Canceled: cancellation, err := speech.NewCancellationDetailsFromSpeechSynthesisResult(result) if err != nil { fmt.Println("Got an error: ", err) return } fmt.Printf("CANCELED: Reason=%d\n", cancellation.Reason) if cancellation.Reason == common.Error { fmt.Printf("CANCELED: ErrorCode=%d\n", cancellation.ErrorCode) fmt.Printf("CANCELED: ErrorDetails=[%s]\n", cancellation.ErrorDetails) fmt.Println("CANCELED: Did you set the speech resource key and endpoint values?") } default: } } func main() { // This example requires environment variables named "SPEECH_KEY" and "ENDPOINT" speechKey := os.Getenv("SPEECH_KEY") endpoint := os.Getenv("ENDPOINT") if speechKey == "" || endpoint == "" { fmt.Println("Missing required environment variables. Set SPEECH_KEY and ENDPOINT.") return } speechConfig, err := speech.NewSpeechConfigFromEndpointWithSubscription(endpoint, speechKey) if err != nil { fmt.Println("Got an error: ", err) return } defer speechConfig.Close() // The neural multilingual voice can speak different languages based on the input text. speechConfig.SetSpeechSynthesisVoiceName("en-US-Ava:DragonHDLatestNeural") audioConfig, err := audio.NewAudioConfigFromDefaultSpeakerOutput() if err != nil { fmt.Println("Got an error: ", err) return } defer audioConfig.Close() speechSynthesizer, err := speech.NewSpeechSynthesizerFromConfig(speechConfig, audioConfig) if err != nil { fmt.Println("Got an error: ", err) return } defer speechSynthesizer.Close() fmt.Println("Enter some text that you want to speak >") reader := bufio.NewReader(os.Stdin) text, _ := reader.ReadString('\n') text = strings.TrimSpace(text) if text == "" { fmt.Println("Input text cannot be empty.") return } outcome := <-speechSynthesizer.SpeakTextAsync(text) defer outcome.Close() if outcome.Error != nil { fmt.Println("Got an error: ", outcome.Error) return } result := outcome.Result defer result.Close() outputSpeechSynthesisResult(result, text) fmt.Println("Press any key to exit...") reader.ReadString('\n') }Чтобы изменить язык синтеза речи, замените
en-US-Ava:DragonHDLatestNeuralна другой поддерживаемый голос.Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке я с нетерпением жду возможности попробовать текст в речь и вы устанавливаете
es-ES-Ximena:DragonHDLatestNeuralв качестве языка, текст произносится на английском языке с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.Выполните следующие команды, чтобы создать файл
go.mod, который ссылается на компоненты пакета SDK службы "Речь", размещенного на GitHub:go mod init captioning go get github.com/Microsoft/cognitive-services-speech-sdk-goВыполните сборку модуля GO.
go buildЗапустите новое консольное приложение, чтобы начать синтез речи на динамик по умолчанию.
go run main.goВведите текст, который требуется произнести. Например, введите Я рад попробовать текст в речь. Нажмите клавишу ВВОД , чтобы услышать синтезированную речь.
Enter some text that you want to speak > I'm excited to try text to speech
Замечания
Дополнительные варианты синтеза речи
В этом кратком руководстве используется функция SpeakText для синтеза короткого блока текста, который вы вводите. Вы также можете использовать длинный текст из файла и получить более точное управление стилями голоса, просодией и другими параметрами.
- Узнайте
, как синтезировать речь из файла, и ознакомьтесь с обзором языка разметки синтеза речи (SSML) для более точного управления стилями голоса, просодией и другими параметрами. - Смотрите API пакетного преобразования текста в речь для получения информации о синтезе длинных текстов.
Голоса OpenAI для преобразования текста в речь в Azure Speech в инструментах Foundry
Поддерживаются также голоса для преобразования текста в речь от OpenAI. См. голоса OpenAI для преобразования текста в речь в Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural на поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.
Очистка ресурсов
Вы можете использовать портал Azure или интерфейс командной строки Azure (CLI), чтобы удалить созданный вами ресурс Speech.
Справочная документация | Пакет (загрузка) | Дополнительные примеры на GitHub
С помощью Azure Speech в Foundry Tools можно запустить приложение, которое синтезирует голос, похожий на человеческий, чтобы озвучивать текст. Вы можете изменить голос, ввести текст и прослушивать выходные данные на динамике компьютера.
Совет
Вы можете попробовать преобразование текста в речь в галерее голосов Speech Studio без регистрации или написания кода.
Совет
Попробуйте использовать набор средств Azure Speech Toolkit, чтобы легко создавать и запускать примеры на Visual Studio Code.
Предварительные требования
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создайте ресурс Foundry для Speech на портале Azure.
- Получите ключ ресурса и регион службы речи. После развертывания ресурса Speech выберите Перейти к ресурсу, чтобы просмотреть ключи и управлять ими.
Настройка среды
Пакет SDK "Речь" для Swift распространяется как пакет фреймворка. Платформа поддерживает как Objective-C, так и SWIFT как в iOS, так и в macOS.
SDK "Речь" можно использовать в проектах Xcode в качестве CocoaPod или загрузить напрямую и связать вручную. В этом руководстве используется CocoaPod. Установите диспетчер зависимостей CocoaPods, следуя его инструкциям по установке.
Настройка переменных среды
Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем Microsoft Entra ID проверку подлинности с помощью управляемых удостоверений для ресурсов Azure, чтобы избежать хранения учетных данных в приложениях, работающих в облаке.
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничивайте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать переменную среды
SPEECH_KEY, замените your-key одним из ключей вашего ресурса. - Чтобы задать переменную среды
SPEECH_REGION, замените your-region на один из регионов, соответствующих вашему ресурсу. - Чтобы задать
ENDPOINTпеременную среды, заменитеyour-endpointфактической конечной точкой ресурса распознавания речи.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint
Примечание.
Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.
После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.
Создание приложения
Выполните следующие действия для синтеза речи в приложении macOS.
Клонируйте репозиторий Azure-Samples/cognitive-services-speech-sdk, чтобы получить образец проекта Synthesize audio in Swift на macOS, используя Speech SDK. Репозиторий также содержит примеры для iOS.
Перейдите в каталог скачанного примера приложения (
helloworld) в терминале.Запустите команду
pod install. Эта команда создаёт рабочую область Xcodehelloworld.xcworkspace, содержащую как пример приложения, так и Speech SDK в качестве зависимости.Откройте рабочую область
helloworld.xcworkspaceв Xcode.Откройте файл с именем AppDelegate.swift и найдите методы
applicationDidFinishLaunchingиsynthesize, как показано здесь.import Cocoa @NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate, NSTextFieldDelegate { var textField: NSTextField! var synthesisButton: NSButton! var inputText: String! var sub: String! var region: String! @IBOutlet weak var window: NSWindow! func applicationDidFinishLaunching(_ aNotification: Notification) { print("loading") // load subscription information sub = ProcessInfo.processInfo.environment["SPEECH_KEY"] region = ProcessInfo.processInfo.environment["SPEECH_REGION"] inputText = "" textField = NSTextField(frame: NSRect(x: 100, y: 200, width: 200, height: 50)) textField.textColor = NSColor.black textField.lineBreakMode = .byWordWrapping textField.placeholderString = "Type something to synthesize." textField.delegate = self self.window.contentView?.addSubview(textField) synthesisButton = NSButton(frame: NSRect(x: 100, y: 100, width: 200, height: 30)) synthesisButton.title = "Synthesize" synthesisButton.target = self synthesisButton.action = #selector(synthesisButtonClicked) self.window.contentView?.addSubview(synthesisButton) } @objc func synthesisButtonClicked() { DispatchQueue.global(qos: .userInitiated).async { self.synthesize() } } func synthesize() { var speechConfig: SPXSpeechConfiguration? do { try speechConfig = SPXSpeechConfiguration(subscription: sub, region: region) } catch { print("error \(error) happened") speechConfig = nil } speechConfig?.speechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural"; let synthesizer = try! SPXSpeechSynthesizer(speechConfig!) let result = try! synthesizer.speakText(inputText) if result.reason == SPXResultReason.canceled { let cancellationDetails = try! SPXSpeechSynthesisCancellationDetails(fromCanceledSynthesisResult: result) print("cancelled, error code: \(cancellationDetails.errorCode) detail: \(cancellationDetails.errorDetails!) ") print("Did you set the speech resource key and region values?"); return } } func controlTextDidChange(_ obj: Notification) { let textFiled = obj.object as! NSTextField inputText = textFiled.stringValue } }В AppDelegate.m используйте переменные среды, заданные ранее для ключа и региона ресурса службы речи.
sub = ProcessInfo.processInfo.environment["SPEECH_KEY"] region = ProcessInfo.processInfo.environment["SPEECH_REGION"]При необходимости в AppDelegate.m включите имя голоса синтеза речи, как показано здесь:
speechConfig?.speechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural";Чтобы изменить язык синтеза речи, замените
en-US-Ava:DragonHDLatestNeuralна другой поддерживаемый голос.Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке Я рад попробовать текст для речи, и вы установили
es-ES-Ximena:DragonHDLatestNeural, текст произносится на английском с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.Чтобы сделать выходные данные отладки видимыми, выберите Вид>Область отладки>Активировать консоль.
Чтобы собрать и запустить пример кода, выберите Продукт>Запуск в меню или нажмите кнопку Воспроизведение.
Внимание
Убедитесь, что вы задали переменные среды SPEECH_KEY и SPEECH_REGION. Если эти переменные не заданы, пример завершится с сообщением об ошибке.
После ввода текста и нажатия кнопки в приложении, вы должны услышать воспроизводимый синтезированный аудио.
Замечания
Дополнительные варианты синтеза речи
В этом кратком руководстве для синтеза короткого блока введенного вами текста используется операция SpeakText. Вы также можете использовать длинный текст из файла и получить более точное управление стилями голоса, просодией и другими параметрами.
- Узнайте
, как синтезировать речь из файла, и ознакомьтесь с обзором языка разметки синтеза речи (SSML) для более точного управления стилями голоса, просодией и другими параметрами. - Смотрите API пакетного преобразования текста в речь для получения информации о синтезе длинных текстов.
Голоса OpenAI для преобразования текста в речь в Azure Speech в инструментах Foundry
Поддерживаются также голоса для преобразования текста в речь от OpenAI. См. голоса OpenAI для преобразования текста в речь в Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural на поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.
Очистка ресурсов
Вы можете использовать портал Azure или интерфейс командной строки Azure (CLI), чтобы удалить созданный вами ресурс Speech.
Справочная документация | Пакет (npm) | Дополнительные примеры на GitHub | Исходный код библиотеки
С помощью Azure Speech в Foundry Tools можно запустить приложение, которое синтезирует голос, похожий на человеческий, чтобы озвучивать текст. Вы можете изменить голос, ввести текст и прослушивать выходные данные на динамике компьютера.
Совет
Вы можете попробовать преобразование текста в речь в галерее голосов Speech Studio без регистрации или написания кода.
Совет
Попробуйте использовать набор средств Azure Speech Toolkit, чтобы легко создавать и запускать примеры на Visual Studio Code.
Предварительные требования
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создайте ресурс Foundry для Speech на портале Azure.
- Получите ключ ресурса и регион службы речи. После развертывания ресурса Speech выберите Перейти к ресурсу, чтобы просмотреть ключи и управлять ими.
Настройка
Создайте новую папку
synthesis-quickstartи перейдите в папку быстрого запуска, используя следующую команду:mkdir synthesis-quickstart && cd synthesis-quickstartСоздайте
package.jsonс помощью следующей команды:npm init -yОбновите
package.jsonна ECMAScript с помощью следующей команды:npm pkg set type=moduleУстановите SDK для распознавания речи в JavaScript с помощью:
npm install microsoft-cognitiveservices-speech-sdkЧтобы избежать ошибок TypeScript, необходимо установить определения типов Node.js. Выполните следующую команду:
npm install --save-dev @types/node
Получение сведений о ресурсе
Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем Microsoft Entra ID проверку подлинности с помощью управляемых удостоверений для ресурсов Azure, чтобы избежать хранения учетных данных в приложениях, работающих в облаке.
Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничивайте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения о безопасном использовании ключей API в приложениях см. в разделе Ключи API с Azure Key Vault.
Дополнительные сведения о безопасности служб ИИ см. в разделе Аутентификация запросов к службам Azure AI.
Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать переменную среды
SPEECH_KEY, замените your-key одним из ключей вашего ресурса. - Чтобы задать переменную среды
SPEECH_REGION, замените your-region на один из регионов, соответствующих вашему ресурсу. - Чтобы задать
ENDPOINTпеременную среды, заменитеyour-endpointфактической конечной точкой ресурса распознавания речи.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint
Примечание.
Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.
После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.
Синтезирование речи в файл
Чтобы перевести речь из файла:
Создайте файл с именем synthesis.ts со следующим содержимым:
import { createInterface } from "readline"; import { SpeechConfig, AudioConfig, SpeechSynthesizer, ResultReason, SpeechSynthesisResult } from "microsoft-cognitiveservices-speech-sdk"; function synthesizeSpeech(): void { const audioFile = "YourAudioFile.wav"; // This example requires environment variables named "ENDPOINT" and "SPEECH_KEY" const speechConfig: SpeechConfig = SpeechConfig.fromEndpoint(new URL(process.env.ENDPOINT!), process.env.SPEECH_KEY!); const audioConfig: AudioConfig = AudioConfig.fromAudioFileOutput(audioFile); // The language of the voice that speaks. speechConfig.speechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural"; // Create the speech synthesizer. const synthesizer: SpeechSynthesizer = new SpeechSynthesizer(speechConfig, audioConfig); const rl = createInterface({ input: process.stdin, output: process.stdout }); rl.question("Enter some text that you want to speak >\n> ", function (text: string) { rl.close(); // Start the synthesizer and wait for a result. synthesizer.speakTextAsync(text, function (result: SpeechSynthesisResult) { if (result.reason === ResultReason.SynthesizingAudioCompleted) { console.log("synthesis finished."); } else { console.error("Speech synthesis canceled, " + result.errorDetails + "\nDid you set the speech resource key and region values?"); } synthesizer.close(); }, function (err: string) { console.trace("err - " + err); synthesizer.close(); }); console.log("Now synthesizing to: " + audioFile); }); } synthesizeSpeech();При необходимости в synthesis.ts можно переименовать YourAudioFile.wav в другое имя выходного файла.
Чтобы изменить язык синтеза речи, замените
en-US-Ava:DragonHDLatestNeuralна другой поддерживаемый голос.Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке Я рад попробовать текст для речи, и вы установили
es-ES-Ximena:DragonHDLatestNeural, текст произносится на английском с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.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Эта команда не должна выводить выходные данные в случае успешного выполнения.
Запустите консольное приложение, чтобы начать синтез речи в файл:
node synthesis.js
Выходные данные
В консоли должны появиться следующие выходные данные. Следуйте запросу, чтобы ввести текст, который требуется синтезировать:
Enter some text that you want to speak >
> I'm excited to try text to speech
Now synthesizing to: YourAudioFile.wav
synthesis finished.
Замечания
Дополнительные варианты синтеза речи
В этом кратком руководстве для синтеза короткого блока введенного вами текста используется операция SpeakTextAsync. Вы также можете использовать длинный текст из файла и получить более точное управление стилями голоса, просодией и другими параметрами.
- Узнайте
, как синтезировать речь из файла, и ознакомьтесь с обзором языка разметки синтеза речи (SSML) для более точного управления стилями голоса, просодией и другими параметрами. - Смотрите API пакетного преобразования текста в речь для получения информации о синтезе длинных текстов.
Голоса OpenAI для преобразования текста в речь в Azure Speech в инструментах Foundry
Поддерживаются также голоса для преобразования текста в речь от OpenAI. См. голоса OpenAI для преобразования текста в речь в Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural на поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.
Очистка ресурсов
Вы можете использовать портал Azure или интерфейс командной строки Azure (CLI), чтобы удалить созданный вами ресурс Speech.