Краткое руководство по преобразованию текста в речь

В этом кратком руководстве попробуйте модель преобразования текста в речь из Azure Speech в инструментах Foundry, используя Microsoft Foundry.

Предварительные требования

Попробуйте функцию преобразования текста в речь

Попробуйте воспроизвести текст вслух в портале Foundry, выполнив следующие действия:

  1. Войдите в Microsoft Foundry. Убедитесь, что переключатель New Foundry включен. Эти действия относятся к Foundry (new).
  2. Выберите "Сборка" в правом верхнем меню.
  3. Выберите модели на левой панели.
  4. На вкладке AI Services показаны модели искусственного интеллекта Azure, готовые к использованию на портале Foundry. Выберите Azure Speech - преобразователь текста в речь, чтобы открыть игровую площадку преобразования текста в речь.
  5. Выберите предварительно созданный голос из раскрывающегося меню и при необходимости настройте его с помощью ползунок параметров поставщика.
  6. Введите пример текста в текстовом поле.
  7. Нажмите «Воспроизвести», чтобы прослушать, как синтетический голос читает ваш текст.

Другие функции Foundry (новые)

На портале Foundry (new) доступны следующие функции распознавания речи:

Речевой ввод в текст REST API справочник | Речевой ввод в текст REST API для справочной информации о коротких аудиозаписях | Дополнительные примеры на GitHub

С помощью Azure Speech в Foundry Tools можно запустить приложение, которое синтезирует голос, похожий на человеческий, чтобы озвучивать текст. Вы можете изменить голос, ввести текст и прослушивать выходные данные на динамике компьютера.

Совет

Вы можете попробовать преобразование текста в речь в галерее голосов Speech Studio без регистрации или написания кода.

Совет

Попробуйте использовать набор средств Azure Speech Toolkit, чтобы легко создавать и запускать примеры на Visual Studio Code.

Предварительные требования

Настройка переменных среды

Для доступа к средствам 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.

Предварительные требования

Настройка среды

Пакет 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 перед запуском примера.

Создание приложения

Выполните следующие действия, чтобы создать консольное приложение.

  1. Откройте окно командной строки в папке, в которой требуется создать проект. Создайте файл с именем speech_synthesis.py.

  2. Выполните команду для установки Speech SDK.

    pip install azure-cognitiveservices-speech
    
  3. Скопируйте следующий код в 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?")
    
  4. Чтобы изменить язык синтеза речи, замените en-US-Ava:DragonHDLatestNeural на другой поддерживаемый голос.

    Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке Я рад попробовать текст для речи, и вы установили es-ES-Ximena:DragonHDLatestNeural, текст произносится на английском с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.

  5. Запустите новое консольное приложение, чтобы начать синтез речи на динамик по умолчанию.

    python speech_synthesis.py
    

    Внимание

    Убедитесь, что вы задали переменные среды SPEECH_KEY и ENDPOINT. Если эти переменные не заданы, пример завершится с сообщением об ошибке.

  6. Введите текст, который требуется произнести. Например, введите Я рад попробовать текст в речь. Выберите клавишу ВВОД, чтобы услышать синтезированную речь.

    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 для многоязычных голосов).

Чтобы найти доступные голоса, выполните приведенные здесь действия.

Сохранение звука в файл

Чтобы сохранить синтезированную речь в файле вместо воспроизведения в динамике, укажите имя файла в :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.

Предварительные требования

Настройка среды

Пакет 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.

  1. Откройте окно командной строки в папке, в которой требуется создать проект. Выполните эту команду, чтобы создать консольное приложение с помощью интерфейса командной строки .NET.

    dotnet new console
    

    Команда создает файл Program.cs в каталоге проекта.

  2. Установите пакет SDK службы "Речь" в новом проекте с помощью интерфейса командной строки .NET.

    dotnet add package Microsoft.CognitiveServices.Speech
    
  3. Замените содержимое 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();
        }
    }
    
  4. Чтобы изменить язык синтеза речи, замените en-US-Ava:DragonHDLatestNeural на другой поддерживаемый голос.

    Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке я с нетерпением жду возможности попробовать текст в речь и вы устанавливаете es-ES-Ximena:DragonHDLatestNeural в качестве языка, текст произносится на английском языке с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.

  5. Запустите новое консольное приложение, чтобы начать синтез речи на динамик по умолчанию.

    dotnet run
    

    Внимание

    Убедитесь, что вы задали переменные среды SPEECH_KEY и ENDPOINT. Если эти переменные не заданы, пример завершится с сообщением об ошибке.

  6. Введите текст, который требуется произнести. Например, введите Я рад попробовать текст в речь. Выберите клавишу ВВОД, чтобы услышать синтезированную речь.

    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 для многоязычных голосов).

Чтобы найти доступные голоса, выполните приведенные здесь действия.

Сохранение звука в файл

Чтобы сохранить синтезированную речь в 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.

Предварительные требования

Настройка

  1. Создайте новую папку synthesis-quickstart и перейдите в папку быстрого запуска, используя следующую команду:

    mkdir synthesis-quickstart && cd synthesis-quickstart
    
  2. Создайте package.json с помощью следующей команды:

    npm init -y
    
  3. Установите 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 перед запуском примера.

Синтезирование речи в файл

Чтобы перевести речь из файла:

  1. Создайте файл с именем 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, текст произносится на английском с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.

  2. Запустите консольное приложение, чтобы начать синтез речи в файл:

    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.

Предварительные требования

Настройка среды

Чтобы настроить среду, установите Speech SDK. Пример в этом кратком руководстве работает с средой выполнения Java.

  1. Установите Apache Maven. Затем выполните команду mvn -v , чтобы подтвердить успешную установку.

  2. Создайте файл 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>
    
  3. Установите пакет 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 перед запуском примера.

Создание приложения

Выполните следующие действия, чтобы создать консольное приложение для распознавания речи.

  1. Создайте файл с именем SpeechSynthesis.java в том же корневом каталоге проекта.

  2. Скопируйте следующий код в 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);
        }
    }
    
  3. Чтобы изменить язык синтеза речи, замените en-US-Ava:DragonHDLatestNeural на другой поддерживаемый голос.

    Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке Я рад попробовать текст для речи, и вы установили es-ES-Ximena:DragonHDLatestNeural, текст произносится на английском с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.

  4. Запустите консольное приложение для вывода синтеза речи на динамик по умолчанию.

    javac SpeechSynthesis.java -cp ".;target\dependency\*"
    java -cp ".;target\dependency\*" SpeechSynthesis
    

    Внимание

    Убедитесь, что вы задали переменные среды SPEECH_KEY и ENDPOINT. Если эти переменные не заданы, пример завершится с сообщением об ошибке.

  5. Введите текст, который требуется произнести. Например, введите Я рад попробовать текст в речь. Выберите клавишу ВВОД, чтобы услышать синтезированную речь.

    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.

Предварительные требования

Настройка среды

Пакет 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.

  1. Создайте консольный проект C++ в Visual Studio Community с именем SpeechSynthesis.

  2. Замените содержимое 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
    }  
    
  3. Выберите Tools>Nuget диспетчер пакетов>диспетчер пакетов console. В консоли диспетчер пакетов выполните следующую команду:

    Install-Package Microsoft.CognitiveServices.Speech
    
  4. Чтобы изменить язык синтеза речи, замените en-US-Ava:DragonHDLatestNeural на другой поддерживаемый голос.

    Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке Я рад попробовать текст для речи, и вы установили es-ES-Ximena:DragonHDLatestNeural, текст произносится на английском с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.

  5. Чтобы начать синтез речи с динамиком по умолчанию, создайте и запустите новое консольное приложение.

    Внимание

    Убедитесь, что вы задали переменные среды SPEECH_KEY и ENDPOINT. Если эти переменные не заданы, пример завершится с сообщением об ошибке.

  6. Введите текст, который требуется произнести. Например, введите Я рад попробовать текст в речь. Выберите клавишу ВВОД, чтобы услышать синтезированную речь.

    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.

Предварительные требования

Настройка среды

Пакет 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.

  1. Откройте окно терминала в папке, в которой требуется новый проект. Создайте файл с именем main.go.

  2. Установите пакет SDK распознавания речи в новом проекте с помощью интерфейса командной строки (CLI) Go.

    go get github.com/Microsoft/cognitive-services-speech-sdk-go
    
  3. Замените содержимое 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')
    }
    
  4. Чтобы изменить язык синтеза речи, замените en-US-Ava:DragonHDLatestNeural на другой поддерживаемый голос.

    Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке я с нетерпением жду возможности попробовать текст в речь и вы устанавливаете es-ES-Ximena:DragonHDLatestNeural в качестве языка, текст произносится на английском языке с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.

  5. Выполните следующие команды, чтобы создать файл go.mod, который ссылается на компоненты пакета SDK службы "Речь", размещенного на GitHub:

    go mod init captioning
    go get github.com/Microsoft/cognitive-services-speech-sdk-go
    
  6. Выполните сборку модуля GO.

    go build
    
  7. Запустите новое консольное приложение, чтобы начать синтез речи на динамик по умолчанию.

    go run main.go
    

    Внимание

    Убедитесь, что вы задали переменные среды SPEECH_KEY и ENDPOINT. Если эти переменные не заданы, пример завершится с сообщением об ошибке.

  8. Введите текст, который требуется произнести. Например, введите Я рад попробовать текст в речь. Нажмите клавишу ВВОД , чтобы услышать синтезированную речь.

    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.

Предварительные требования

Настройка среды

Пакет 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.

  1. Клонируйте репозиторий Azure-Samples/cognitive-services-speech-sdk, чтобы получить образец проекта Synthesize audio in Swift на macOS, используя Speech SDK. Репозиторий также содержит примеры для iOS.

  2. Перейдите в каталог скачанного примера приложения (helloworld) в терминале.

  3. Запустите команду pod install. Эта команда создаёт рабочую область Xcode helloworld.xcworkspace, содержащую как пример приложения, так и Speech SDK в качестве зависимости.

  4. Откройте рабочую область helloworld.xcworkspace в Xcode.

  5. Откройте файл с именем 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
        }
    }
    
  6. В AppDelegate.m используйте переменные среды, заданные ранее для ключа и региона ресурса службы речи.

    sub = ProcessInfo.processInfo.environment["SPEECH_KEY"]
    region = ProcessInfo.processInfo.environment["SPEECH_REGION"]
    
  7. При необходимости в AppDelegate.m включите имя голоса синтеза речи, как показано здесь:

    speechConfig?.speechSynthesisVoiceName = "en-US-Ava:DragonHDLatestNeural";
    
  8. Чтобы изменить язык синтеза речи, замените en-US-Ava:DragonHDLatestNeural на другой поддерживаемый голос.

    Все нейронные голосовые модели поддерживают несколько языков и свободно говорят на родном и английском языках. Например, если входной текст на английском языке Я рад попробовать текст для речи, и вы установили es-ES-Ximena:DragonHDLatestNeural, текст произносится на английском с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.

  9. Чтобы сделать выходные данные отладки видимыми, выберите Вид>Область отладки>Активировать консоль.

  10. Чтобы собрать и запустить пример кода, выберите Продукт>Запуск в меню или нажмите кнопку Воспроизведение.

Внимание

Убедитесь, что вы задали переменные среды 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.

Предварительные требования

Настройка

  1. Создайте новую папку synthesis-quickstart и перейдите в папку быстрого запуска, используя следующую команду:

    mkdir synthesis-quickstart && cd synthesis-quickstart
    
  2. Создайте package.json с помощью следующей команды:

    npm init -y
    
  3. Обновите package.json на ECMAScript с помощью следующей команды:

    npm pkg set type=module
    
  4. Установите SDK для распознавания речи в JavaScript с помощью:

    npm install microsoft-cognitiveservices-speech-sdk
    
  5. Чтобы избежать ошибок 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 перед запуском примера.

Синтезирование речи в файл

Чтобы перевести речь из файла:

  1. Создайте файл с именем 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, текст произносится на английском с испанским акцентом. Если голос не говорит на языке входного текста, служба "Речь" не выводит синтезированный звук.

  2. 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"]
    }
    
  3. Транспилировать код с TypeScript на JavaScript.

    tsc
    

    Эта команда не должна выводить выходные данные в случае успешного выполнения.

  4. Запустите консольное приложение, чтобы начать синтез речи в файл:

    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.

Следующий шаг