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

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

В этом кратком руководстве вы запустите приложение, которое синтезирует речь на основе текста.

Совет

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

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

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

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

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

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

Совет

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

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

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

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную 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 "SPEECH_REGION"
        static string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY");
        static string speechRegion = Environment.GetEnvironmentVariable("SPEECH_REGION");
    
        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 region values?");
                    }
                    break;
                default:
                    break;
            }
        }
    
        async static Task Main(string[] args)
        {
            var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion);      
    
            // The neural multilingual voice can speak different languages based on the input text.
            speechConfig.SpeechSynthesisVoiceName = "en-US-AvaMultilingualNeural"; 
    
            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-AvaMultilingualNeural на другой поддерживаемый голос.

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

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

    dotnet run
    

    Внимание

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

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

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

Замечания

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

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

Текст OpenAI для голоса речи в службе "Речь ИИ Azure"

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

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

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

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

В этом кратком руководстве вы запустите приложение, которое синтезирует речь на основе текста.

Совет

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

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

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

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

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

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

Совет

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

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

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

Примечание.

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

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

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

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

    Внимание

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

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

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

Замечания

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

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

Текст OpenAI для голоса речи в службе "Речь ИИ Azure"

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

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

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

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

В этом кратком руководстве вы запустите приложение, которое синтезирует речь на основе текста.

Совет

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

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

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

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

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

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

Совет

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

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

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

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную 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-AvaMultilingualNeural")
    
        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-AvaMultilingualNeural на другой поддерживаемый голос.

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

  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"

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

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

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

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

В этом кратком руководстве вы запустите приложение, которое синтезирует речь на основе текста.

Совет

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

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

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

Чтобы настроить среду, установите пакет 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.36.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. Установите пакет SDK службы "Речь" и зависимости.

    mvn clean dependency:copy-dependencies
    

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

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

Совет

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

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

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

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную 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 "SPEECH_REGION"
        private static String speechKey = System.getenv("SPEECH_KEY");
        private static String speechRegion = System.getenv("SPEECH_REGION");
    
        public static void main(String[] args) throws InterruptedException, ExecutionException {
            SpeechConfig speechConfig = SpeechConfig.fromSubscription(speechKey, speechRegion);
    
            speechConfig.setSpeechSynthesisVoiceName("en-US-AvaMultilingualNeural"); 
    
            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 region values?");
                }
            }
    
            System.exit(0);
        }
    }
    
  3. Чтобы изменить язык синтеза речи, замените en-US-AvaMultilingualNeural на другой поддерживаемый голос.

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

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

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

    Внимание

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

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

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

Замечания

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

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

Текст OpenAI для голоса речи в службе "Речь ИИ Azure"

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

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

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

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

В этом кратком руководстве вы запустите приложение, которое синтезирует речь на основе текста.

Совет

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

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

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

Чтобы настроить среду, установите пакет SDK службы "Речь" для JavaScript. Если вам только нужно имя пакета для установки, выполните команду npm install microsoft-cognitiveservices-speech-sdk. Инструкции по установке см. в руководстве по установке пакета SDK службы "Речь".

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

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

Совет

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

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

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

Примечание.

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

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

Синтезирование выходных данных для вывода в файл

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

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

  2. Установите пакет SDK службы "Речь" для JavaScript:

    npm install microsoft-cognitiveservices-speech-sdk
    
  3. Скопируйте следующий код в SpeechSynthesis.js:

    (function() {
    
        "use strict";
    
        var sdk = require("microsoft-cognitiveservices-speech-sdk");
        var readline = require("readline");
    
        var audioFile = "YourAudioFile.wav";
        // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION"
        const speechConfig = sdk.SpeechConfig.fromSubscription(process.env.SPEECH_KEY, process.env.SPEECH_REGION);
        const audioConfig = sdk.AudioConfig.fromAudioFileOutput(audioFile);
    
        // The language of the voice that speaks.
        speechConfig.speechSynthesisVoiceName = "en-US-AvaMultilingualNeural"; 
    
        // Create the speech synthesizer.
        var synthesizer = new sdk.SpeechSynthesizer(speechConfig, audioConfig);
    
        var rl = readline.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 === sdk.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();
            synthesizer = null;
          },
              function (err) {
            console.trace("err - " + err);
            synthesizer.close();
            synthesizer = null;
          });
          console.log("Now synthesizing to: " + audioFile);
        });
    }());
    
  4. В SpeechSynthesis.js при необходимости можно переименовать YourAudioFile.wav в другое имя выходного файла.

  5. Чтобы изменить язык синтеза речи, замените en-US-AvaMultilingualNeural на другой поддерживаемый голос.

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

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

    node SpeechSynthesis.js
    

    Внимание

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

  7. Предоставленный текст должен находиться в звуковом файле:

    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"

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

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

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

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

В этом кратком руководстве вы запустите приложение, которое синтезирует речь на основе текста.

Совет

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

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

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

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

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

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

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

Совет

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

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

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

Примечание.

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

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

Синтезирование выходных данных для вывода на динамики

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

  1. Клонируйте репозиторий Azure-Samples/cognitive-services-speech-sdk, чтобы получить пример проекта Синтез звука в Objective-C в macOS с помощью пакета SDK службы "Речь". Репозиторий также содержит примеры для iOS.

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

  3. Выполните команду pod install. При этом будет создана рабочая область Xcode helloworld.xcworkspace, содержащая пример приложения и пакет SDK для службы "Речь" в виде зависимости.

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

  5. Откройте файл с именем AppDelegate.m и найдите buttonPressed метод, как показано здесь.

    - (void)buttonPressed:(NSButton *)button {
        // Creates an instance of a speech config with specified subscription key and service region.
        NSString *speechKey = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_KEY"];
        NSString *serviceRegion = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_REGION"];
    
        SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:speechKey region:serviceRegion];
        speechConfig.speechSynthesisVoiceName = @"en-US-AvaMultilingualNeural";
        SPXSpeechSynthesizer *speechSynthesizer = [[SPXSpeechSynthesizer alloc] init:speechConfig];
    
        NSLog(@"Start synthesizing...");
    
        SPXSpeechSynthesisResult *speechResult = [speechSynthesizer speakText:[self.textField stringValue]];
    
        // Checks result.
        if (SPXResultReason_Canceled == speechResult.reason) {
            SPXSpeechSynthesisCancellationDetails *details = [[SPXSpeechSynthesisCancellationDetails alloc] initFromCanceledSynthesisResult:speechResult];
            NSLog(@"Speech synthesis was canceled: %@. Did you set the speech resource key and region values?", details.errorDetails);
        } else if (SPXResultReason_SynthesizingAudioCompleted == speechResult.reason) {
            NSLog(@"Speech synthesis was completed");
        } else {
            NSLog(@"There was an error.");
        }
    }
    
  6. В AppDelegate.m используйте переменные среды, заданные ранее для ключа ресурса службы "Речь" и региона.

    NSString *speechKey = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_KEY"];
    NSString *serviceRegion = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_REGION"];
    
  7. При необходимости в AppDelegate.m включите имя голоса синтеза речи, как показано здесь:

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

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

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

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

    Внимание

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

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

Замечания

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

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

Текст OpenAI для голоса речи в службе "Речь ИИ Azure"

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

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

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

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

В этом кратком руководстве вы запустите приложение, которое синтезирует речь на основе текста.

Совет

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

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

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

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

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

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

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

Совет

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

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

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

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную 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-AvaMultilingualNeural";
    
            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-AvaMultilingualNeural";
    
  8. Чтобы изменить язык синтеза речи, замените en-US-AvaMultilingualNeural на другой поддерживаемый голос.

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

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

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

Внимание

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

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

Замечания

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

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

Текст OpenAI для голоса речи в службе "Речь ИИ Azure"

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

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

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

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

В этом кратком руководстве вы запустите приложение, которое синтезирует речь на основе текста.

Совет

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

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

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

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

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

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

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

Совет

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

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

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

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную 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 "SPEECH_REGION"
    speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION'))
    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-AvaMultilingualNeural'
    
    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 region values?")
    
  4. Чтобы изменить язык синтеза речи, замените en-US-AvaMultilingualNeural на другой поддерживаемый голос.

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

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

    python speech_synthesis.py
    

    Внимание

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

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

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

Замечания

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

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

Текст OpenAI для голоса речи в службе "Речь ИИ Azure"

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

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

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

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

В этом кратком руководстве вы запустите приложение, которое синтезирует речь на основе текста.

Совет

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

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

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

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

Совет

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

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

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

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную 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-AvaMultilingualNeural'>my voice is my passport verify me</voice></speak>" --output output.mp3

Внимание

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

Предоставленный текст должен выводиться в звуковой файл с именем output.mp3.

Чтобы изменить язык синтеза речи, замените en-US-AvaMultilingualNeural на другой поддерживаемый голос.

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

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

Замечания

Текст OpenAI для голоса речи в службе "Речь ИИ Azure"

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

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

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

В этом кратком руководстве вы запустите приложение, которое синтезирует речь на основе текста.

Совет

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

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

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

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

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

    dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI
    
  2. Выполните следующие команды, чтобы настроить ключ ресурса службы "Речь" и регион. Замените ключом ресурса "Речь" и замените SUBSCRIPTION-KEYREGION регионом ресурсов службы "Речь".

    spx config @key --set SUBSCRIPTION-KEY
    spx config @region --set REGION
    

Синтезирование выходных данных для вывода на динамики

Выполните следующую команду для синтеза речи на динамик по умолчанию. Можно изменить голос и текст для синтеза.

spx synthesize --text "I'm excited to try text to speech" --voice "en-US-AvaMultilingualNeural"

Если вы не задаете имя голоса, голос по умолчанию для en-US речи.

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

Выполните следующую команду для получения дополнительных параметров синтеза речи, таких как входные и выходные данные файлов:

spx help synthesize

Замечания

Поддержка SSML

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

Текст OpenAI для голоса речи в службе "Речь ИИ Azure"

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

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

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

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