Поделиться через


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

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

Необходимые компоненты

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

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

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

Справочные примеры пакета документации | (NuGet) | Дополнительные примеры на GitHub

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

Совет

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

Совет

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

Необходимые компоненты

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

Пакет SDK службы "Речь" доступен в виде пакета NuGet, реализующего .NET Standard 2.0. Установите пакет SDK службы "Речь" далее в этом руководстве с помощью консоли. Подробные инструкции по установке см. в разделе "Установка пакета SDK службы "Речь".

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

Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.

Внимание

Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.

Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничьте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

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

  • Чтобы задать SPEECH_KEY переменную среды, замените ключ одним из ключей ресурса.
  • Чтобы задать ENDPOINT переменную среды, замените вашу конечную точку одной из конечных точек вашего ресурса.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.

После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.

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

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

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

    dotnet new console
    

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

  2. Установите пакет SDK для службы "Речь" в новом проекте с помощью CLI .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 
    {
        // This example requires environment variables named "SPEECH_KEY" and "END_POINT"
        static string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY");
        static string endpoint = Environment.GetEnvironmentVariable("END_POINT");
    
        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)
        {
            var speechConfig = SpeechConfig.FromEndpoint(speechKey, endpoint); 
    
            // 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 на другой поддерживаемый голос.

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

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

    dotnet run
    

    Внимание

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

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

    Enter some text that you want to speak >
    I'm excited to try text to speech
    

Замечания

Дополнительные варианты синтеза речи

В этом кратком руководстве для синтеза короткого блока введенного вами текста используется операция SpeakTextAsync. Вы также можете использовать длинный текст из файла и получить более точное управление стилями голоса, просодией и другими параметрами.

Голоса OpenAI для функции синтеза речи в службе Azure Speech в инструментах Foundry

Кроме того, поддерживаются текст OpenAI для голоса речи. См. голоса OpenAI в службе Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.

Очистка ресурсов

Для удаления созданного ресурса службы "Речь" можно использовать портал Azure или интерфейс командной строки (CLI) Azure.

Справочные примеры пакета документации | (NuGet) | Дополнительные примеры на GitHub

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

Совет

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

Совет

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

Необходимые компоненты

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

Пакет SDK службы "Речь" доступен в виде пакета NuGet, реализующего .NET Standard 2.0. Установите пакет SDK службы "Речь" далее в этом руководстве. Подробные инструкции по установке см. в разделе "Установка пакета SDK службы "Речь".

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

Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.

Внимание

Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.

Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничьте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

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

  • Чтобы задать SPEECH_KEY переменную среды, замените ключ одним из ключей ресурса.
  • Чтобы задать ENDPOINT переменную среды, замените вашу конечную точку одной из конечных точек вашего ресурса.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.

После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.

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

Выполните следующие действия, чтобы создать консольное приложение и установить пакет 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 ((size(speechKey) == 0) || (size(endpoint) == 0)) {
            std::cout << "Please set both SPEECH_KEY and ENDPOINT environment variables." << std::endl;
            return -1;
        }
    
        auto speechConfig = SpeechConfig::FromEndpoint(speechKey, endpoint);
    
        // The neural multilingual voice can speak different languages based on the input text.
        speechConfig->SetSpeechSynthesisVoiceName("en-US-Ava:DragonHDLatestNeural");
    
        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. Выберите инструменты>> В консоли диспетчер пакетов выполните следующую команду:

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

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

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

    Внимание

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

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

    Enter some text that you want to speak >
    I'm excited to try text to speech
    

Замечания

Дополнительные варианты синтеза речи

В этом кратком руководстве для синтеза короткого блока введенного вами текста используется операция SpeakTextAsync. Вы также можете использовать длинный текст из файла и получить более точное управление стилями голоса, просодией и другими параметрами.

Голоса синтеза речи OpenAI в службе "Речь Azure" и в средствах Foundry

Кроме того, поддерживаются текст OpenAI для голоса речи. См. голоса OpenAI для преобразования текста в речь в службе Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.

Очистка ресурсов

Для удаления созданного ресурса службы "Речь" можно использовать портал Azure или интерфейс командной строки (CLI) Azure.

Справочные примеры пакета документации | (Go) | Дополнительные примеры на GitHub

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

Совет

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

Совет

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

Необходимые компоненты

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

Установите пакет SDK службы "Речь" для языка Go. Подробные инструкции по установке см. в разделе "Установка пакета SDK службы "Речь".

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

Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.

Внимание

Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.

Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничьте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.

  • Чтобы задать SPEECH_KEY переменную среды, замените ключ одним из ключей ресурса.
  • Чтобы задать SPEECH_REGION переменную среды, замените регион одним из регионов для ресурса.
  • Чтобы задать ENDPOINT переменную среды, замените your-endpoint на фактическую конечную точку ресурса Speech.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
setx ENDPOINT your-endpoint

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.

После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.

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

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

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

  2. Скопируйте следующий код в speech-synthesis.go:

    package main
    
    import (
        "bufio"
        "fmt"
        "os"
        "strings"
        "time"
    
        "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 synthesizeStartedHandler(event speech.SpeechSynthesisEventArgs) {
        defer event.Close()
        fmt.Println("Synthesis started.")
    }
    
    func synthesizingHandler(event speech.SpeechSynthesisEventArgs) {
        defer event.Close()
        fmt.Printf("Synthesizing, audio chunk size %d.\n", len(event.Result.AudioData))
    }
    
    func synthesizedHandler(event speech.SpeechSynthesisEventArgs) {
        defer event.Close()
        fmt.Printf("Synthesized, audio length %d.\n", len(event.Result.AudioData))
    }
    
    func cancelledHandler(event speech.SpeechSynthesisEventArgs) {
        defer event.Close()
        fmt.Println("Received a cancellation.")
    }
    
    func main() {
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        speechKey :=  os.Getenv("SPEECH_KEY")
        speechRegion := os.Getenv("SPEECH_REGION")
    
        audioConfig, err := audio.NewAudioConfigFromDefaultSpeakerOutput()
        if err != nil {
            fmt.Println("Got an error: ", err)
            return
        }
        defer audioConfig.Close()
        speechConfig, err := speech.NewSpeechConfigFromSubscription(speechKey, speechRegion)
        if err != nil {
            fmt.Println("Got an error: ", err)
            return
        }
        defer speechConfig.Close()
    
        speechConfig.SetSpeechSynthesisVoiceName("en-US-Ava:DragonHDLatestNeural")
    
        speechSynthesizer, err := speech.NewSpeechSynthesizerFromConfig(speechConfig, audioConfig)
        if err != nil {
            fmt.Println("Got an error: ", err)
            return
        }
        defer speechSynthesizer.Close()
    
        speechSynthesizer.SynthesisStarted(synthesizeStartedHandler)
        speechSynthesizer.Synthesizing(synthesizingHandler)
        speechSynthesizer.SynthesisCompleted(synthesizedHandler)
        speechSynthesizer.SynthesisCanceled(cancelledHandler)
    
        for {
            fmt.Printf("Enter some text that you want to speak, or enter empty text to exit.\n> ")
            text, _ := bufio.NewReader(os.Stdin).ReadString('\n')
            text = strings.TrimSuffix(text, "\n")
            if len(text) == 0 {
                break
            }
    
            task := speechSynthesizer.SpeakTextAsync(text)
            var outcome speech.SpeechSynthesisOutcome
            select {
            case outcome = <-task:
            case <-time.After(60 * time.Second):
                fmt.Println("Timed out")
                return
            }
            defer outcome.Close()
            if outcome.Error != nil {
                fmt.Println("Got an error: ", outcome.Error)
                return
            }
    
            if outcome.Result.Reason == common.SynthesizingAudioCompleted {
                fmt.Printf("Speech synthesized to speaker for text [%s].\n", text)
            } else {
                cancellation, _ := speech.NewCancellationDetailsFromSpeechSynthesisResult(outcome.Result)
                fmt.Printf("CANCELED: Reason=%d.\n", cancellation.Reason)
    
                if cancellation.Reason == common.Error {
                    fmt.Printf("CANCELED: ErrorCode=%d\nCANCELED: ErrorDetails=[%s]\nCANCELED: Did you set the speech resource key and region values?\n",
                        cancellation.ErrorCode,
                        cancellation.ErrorDetails)
                }
            }
        }
    }
    
  3. Чтобы изменить язык синтеза речи, замените en-US-Ava:DragonHDLatestNeural на другой поддерживаемый голос.

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

  4. Выполните приведенные ниже команды, чтобы создать файл go.mod со ссылкой на компоненты, размещенные в GitHub:

    go mod init speech-synthesis
    go get github.com/Microsoft/cognitive-services-speech-sdk-go
    

    Внимание

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

  5. Теперь можно приступить к сборке и выполнению кода:

    go build
    go run speech-synthesis
    

Замечания

Голоса преобразования текста в речь OpenAI в службе Azure Speech в инструментах Foundry

Кроме того, поддерживаются текст OpenAI для голоса речи. См. голоса OpenAI для текста в речь в Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.

Очистка ресурсов

Для удаления созданного ресурса службы "Речь" можно использовать портал Azure или интерфейс командной строки (CLI) Azure.

Справочная документация | по Дополнительным примерам на GitHub

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

Совет

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

Совет

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

Необходимые компоненты

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

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

    mvn clean dependency:copy-dependencies
    

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

Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.

Внимание

Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.

Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничьте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

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

  • Чтобы задать SPEECH_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.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 {
            SpeechConfig speechConfig = SpeechConfig.fromEndpoint(speechKey, endpoint);
    
            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 на другой поддерживаемый голос.

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

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

Инструменты OpenAI для синтеза речи в службе Azure Speech в платформе Foundry

Кроме того, поддерживаются текст OpenAI для голоса речи. См. текст OpenAI для голосовой речи в Службе "Речь Azure " и многоязычных голосах. Вы можете заменить en-US-Ava:DragonHDLatestNeural поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.

Очистка ресурсов

Для удаления созданного ресурса службы "Речь" можно использовать портал Azure или интерфейс командной строки (CLI) Azure.

Справочные примеры пакета документации | |

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

Совет

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

Совет

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

Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничьте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.

  • Чтобы задать SPEECH_KEY переменную среды, замените ключ одним из ключей ресурса.
  • Чтобы задать SPEECH_REGION переменную среды, замените регион одним из регионов для ресурса.
  • Чтобы задать ENDPOINT переменную среды, замените your-endpoint на фактическую конечную точку ресурса Speech.
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 на другой поддерживаемый голос.

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

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

Голоса для синтеза речи от OpenAI в службе Azure Speech в инструментах Foundry

Кроме того, поддерживаются текст OpenAI для голоса речи. См. голоса OpenAI для преобразования текста в речь в Службе 'Речь Azure' и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.

Очистка ресурсов

Для удаления созданного ресурса службы "Речь" можно использовать портал Azure или интерфейс командной строки (CLI) Azure.

Справочный пакет документации | (скачивание) | Дополнительные примеры на GitHub

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

Совет

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

Совет

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

Необходимые компоненты

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

Пакет SDK службы "Речь" для Swift сейчас доступен в виде пакета платформы. Платформа поддерживает как Objective-C, так и SWIFT как в iOS, так и в macOS.

Пакет SDK службы "Речь" можно использовать в проектах Xcode в качестве КакаоПода или скачать напрямую и связать вручную. В этом руководстве используется диспетчер зависимостей CocoaPods. Установите диспетчер зависимостей CocoaPods, следуя его инструкциям по установке.

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

Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.

Внимание

Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.

Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничьте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.

  • Чтобы задать SPEECH_KEY переменную среды, замените ключ одним из ключей ресурса.
  • Чтобы задать SPEECH_REGION переменную среды, замените регион одним из регионов для ресурса.
  • Чтобы задать ENDPOINT переменную среды, замените your-endpoint на фактическую конечную точку ресурса Speech.
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, чтобы получить пример проекта Синтез звука в Swift в macOS с помощью пакета SDK службы "Речь". Репозиторий также содержит примеры для iOS.

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

  3. Выполните команду pod install. При этом будет создана рабочая область Xcode helloworld.xcworkspace, содержащая пример приложения и пакет 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 на другой поддерживаемый голос.

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

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

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

Внимание

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

После ввода текста и нажатия кнопки в приложении следует синтезированный звук.

Замечания

Дополнительные варианты синтеза речи

В этом кратком руководстве для синтеза короткого блока введенного вами текста используется операция SpeakText. Вы также можете использовать длинный текст из файла и получить более точное управление стилями голоса, просодией и другими параметрами.

Голоса OpenAI для синтеза речи в Azure Speech в инструментах Foundry Tools

Кроме того, поддерживаются текст OpenAI для голоса речи. См. голоса OpenAI для преобразования текста в речь в Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.

Очистка ресурсов

Для удаления созданного ресурса службы "Речь" можно использовать портал Azure или интерфейс командной строки (CLI) Azure.

Справочные примеры пакета документации | (PyPi) | Дополнительные примеры на GitHub

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

Совет

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

Совет

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

Необходимые компоненты

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

Пакет SDK для Python доступен в виде модуля индекса пакетов Python (PyPI). Пакет SDK для службы "Речь" (Python) совместим с Windows, Linux и macOS.

Установите версию Python с версии 3.7 или более поздней версии. Дополнительные сведения см. в разделе "Установка пакета SDK службы "Речь".

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

Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.

Внимание

Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.

Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничьте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

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

  • Чтобы задать SPEECH_KEY переменную среды, замените ключ одним из ключей ресурса.
  • Чтобы задать ENDPOINT переменную среды, замените вашу конечную точку одной из конечных точек вашего ресурса.
setx SPEECH_KEY your-key
setx ENDPOINT your-endpoint

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.

После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.

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

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

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

  2. Выполните следующую команду для установки пакета 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 на другой поддерживаемый голос.

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

  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
    

Замечания

Дополнительные варианты синтеза речи

В этом кратком руководстве для синтеза короткого блока введенного вами текста используется операция speak_text_async. Вы также можете использовать длинный текст из файла и получить более точное управление стилями голоса, просодией и другими параметрами.

Голоса для синтеза речи на основе OpenAI в службе "Azure Speech" в инструментах Foundry.

Кроме того, поддерживаются текст OpenAI для голоса речи. См. голоса OpenAI для синтеза речи в службе Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.

Очистка ресурсов

Для удаления созданного ресурса службы "Речь" можно использовать портал Azure или интерфейс командной строки (CLI) Azure.

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

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

Совет

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

Совет

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

Необходимые компоненты

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

Для доступа к средствам Foundry необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.

Внимание

Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.

Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничьте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.

  • Чтобы задать SPEECH_KEY переменную среды, замените ключ одним из ключей ресурса.
  • Чтобы задать SPEECH_REGION переменную среды, замените регион одним из регионов для ресурса.
  • Чтобы задать ENDPOINT переменную среды, замените your-endpoint на фактическую конечную точку ресурса Speech.
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 на другой поддерживаемый голос.

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

Дополнительные сведения см. в разделе REST API преобразования текста в речь.

Замечания

Голоса синтеза речи OpenAI в Azure Speech в инструментах Foundry

Кроме того, поддерживаются текст OpenAI для голоса речи. См. голоса OpenAI для преобразования текста в речь в службе Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.

Очистка ресурсов

Для удаления созданного ресурса службы "Речь" можно использовать портал Azure или интерфейс командной строки (CLI) Azure.

Справочные примеры пакета документации | |

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

Совет

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

Совет

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

Используйте ключи API с осторожностью. Не включайте ключ API непосредственно в код и никогда не публикуйте его. При использовании ключей API безопасно храните их в Azure Key Vault, регулярно поворачивайте ключи и ограничьте доступ к Azure Key Vault с помощью управления доступом на основе ролей и ограничений доступа к сети. Дополнительные сведения об использовании ключей API безопасно в приложениях см. в разделе "Ключи API" с помощью Azure Key Vault.

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.

  • Чтобы задать SPEECH_KEY переменную среды, замените ключ одним из ключей ресурса.
  • Чтобы задать SPEECH_REGION переменную среды, замените регион одним из регионов для ресурса.
  • Чтобы задать ENDPOINT переменную среды, замените your-endpoint на фактическую конечную точку ресурса Speech.
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 на другой поддерживаемый голос.

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

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

Голоса синтеза речи OpenAI в Azure Speech в инструментах Foundry

Кроме того, поддерживаются текст OpenAI для голоса речи. См. голоса OpenAI для преобразования текста в речь в службе Azure Speech и многоязычные голоса. Вы можете заменить en-US-Ava:DragonHDLatestNeural поддерживаемое голосовое имя OpenAI, например en-US-FableMultilingualNeural.

Очистка ресурсов

Для удаления созданного ресурса службы "Речь" можно использовать портал Azure или интерфейс командной строки (CLI) Azure.

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