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

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

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

Совет

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

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

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

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

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

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

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

    dotnet new console
    
  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 
    {
        static string YourSubscriptionKey = "YourSubscriptionKey";
        static string YourServiceRegion = "YourServiceRegion";
    
        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(YourSubscriptionKey, YourServiceRegion);      
    
            // The language of the voice that speaks.
            speechConfig.SpeechSynthesisVoiceName = "en-US-JennyNeural"; 
    
            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. В Program.cs замените YourSubscriptionKey на ключ ресурса службы "Речь" и замените YourServiceRegion на регион ресурса службы "Речь".

    Важно!

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

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

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

dotnet run

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

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

Remarks

Теперь, когда вы завершили работу с кратким руководством, ознакомьтесь с дополнительными рекомендациями.

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

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

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

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

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

Совет

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

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

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

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

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

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

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

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

    Install-Package Microsoft.CognitiveServices.Speech
    
  3. Замените все содержимое main.cpp следующим кодом:

    #include <iostream> // cin, cout
    #include <speechapi_cxx.h>
    
    using namespace std;
    using namespace Microsoft::CognitiveServices::Speech;
    using namespace Microsoft::CognitiveServices::Speech::Audio;
    
    auto YourSubscriptionKey = "YourSubscriptionKey";
    auto YourServiceRegion = "YourServiceRegion";
    
    int main()
    {
        auto speechConfig = SpeechConfig::FromSubscription(YourSubscriptionKey, YourServiceRegion);
    
        // The language of the voice that speaks.
        speechConfig->SetSpeechSynthesisVoiceName("en-US-JennyNeural");
    
        auto synthesizer = SpeechSynthesizer::FromConfig(speechConfig);
    
        // Get text from the console and synthesize to the default speaker.
        cout << "Enter some text that you want to speak >" << std::endl;
        std::string text;
        getline(cin, text);
    
        auto result = synthesizer->SpeakTextAsync(text).get();
    
        // Checks result.
        if (result->Reason == ResultReason::SynthesizingAudioCompleted)
        {
            cout << "Speech synthesized to speaker for text [" << text << "]" << std::endl;
        }
        else if (result->Reason == ResultReason::Canceled)
        {
            auto cancellation = SpeechSynthesisCancellationDetails::FromResult(result);
            cout << "CANCELED: Reason=" << (int)cancellation->Reason << std::endl;
    
            if (cancellation->Reason == CancellationReason::Error)
            {
                cout << "CANCELED: ErrorCode=" << (int)cancellation->ErrorCode << std::endl;
                cout << "CANCELED: ErrorDetails=[" << cancellation->ErrorDetails << "]" << std::endl;
                cout << "CANCELED: Did you set the speech resource key and region values?" << std::endl;
            }
        }
    
        cout << "Press enter to exit..." << std::endl;
        cin.get();
    }           
    
  4. В main.cpp замените YourSubscriptionKey на ключ ресурса службы "Речь" и замените YourServiceRegion на регион ресурса службы "Речь".

    Важно!

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

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

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

dotnet run

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

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

Remarks

Теперь, когда вы завершили работу с кратким руководством, ознакомьтесь с дополнительными рекомендациями.

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

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

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

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

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

Совет

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

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

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

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

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

Выполните следующие действия, чтобы создать новый модуль 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() {
        key :=  "YourSubscriptionKey"
        region := "YourServiceRegion"
    
    	audioConfig, err := audio.NewAudioConfigFromDefaultSpeakerOutput()
    	if err != nil {
    		fmt.Println("Got an error: ", err)
    		return
    	}
    	defer audioConfig.Close()
    	speechConfig, err := speech.NewSpeechConfigFromSubscription(key, region)
    	if err != nil {
    		fmt.Println("Got an error: ", err)
    		return
    	}
    	defer speechConfig.Close()
    
    	speechConfig.SetSpeechSynthesisVoiceName("en-US-JennyNeural")
    
    	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. В speech-synthesis.go замените YourSubscriptionKey на ключ ресурса службы "Речь" и замените YourServiceRegion на регион ресурса службы "Речь".

    Важно!

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

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

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

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

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

go build
go run speech-synthesis

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

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

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

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

Совет

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

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

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

Прежде чем выполнять какие-либо действия, необходимо установить пакет SDK для службы "Речь". Пример, приведенный в этом кратком руководстве, работает со средой выполнения Java.

  1. Установка Apache Maven
  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>
        <repositories>
            <repository>
            <id>maven-cognitiveservices-speech</id>
            <name>Microsoft Cognitive Services Speech Maven Repository</name>
            <url>https://azureai.azureedge.net/maven/</url>
            </repository>
        </repositories>
        <dependencies>
            <dependency>
            <groupId>com.microsoft.cognitiveservices.speech</groupId>
            <artifactId>client-sdk</artifactId>
            <version>1.23.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. Установите пакет SDK службы "Речь" и зависимости.
    mvn clean dependency:copy-dependencies
    

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

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

  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 {
        private static String YourSubscriptionKey = "YourSubscriptionKey";
        private static String YourServiceRegion = "YourServiceRegion";
    
        public static void main(String[] args) throws InterruptedException, ExecutionException {
            SpeechConfig speechConfig = SpeechConfig.fromSubscription(YourSubscriptionKey, YourServiceRegion);
    
            speechConfig.setSpeechSynthesisVoiceName("en-US-JennyNeural"); 
    
            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 speechRecognitionResult = speechSynthesizer.SpeakTextAsync(text).get();
    
            if (speechRecognitionResult.getReason() == ResultReason.SynthesizingAudioCompleted) {
                System.out.println("Speech synthesized to speaker for text [" + text + "]");
            }
            else if (speechRecognitionResult.getReason() == ResultReason.Canceled) {
                SpeechSynthesisCancellationDetails cancellation = SpeechSynthesisCancellationDetails.fromResult(speechRecognitionResult);
                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. В SpeechSynthesis.java замените YourSubscriptionKey на ключ ресурса службы "Речь" и замените YourServiceRegion на регион ресурса службы "Речь".

    Важно!

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

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

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

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

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

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

Remarks

Теперь, когда вы завершили работу с кратким руководством, ознакомьтесь с дополнительными рекомендациями.

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

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

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

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

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

Совет

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

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

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

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

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

Выполните следующие действия, чтобы создать консольное приложение 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 key = "YourSubscriptionKey";
        var region = "YourServiceRegion";
        var audioFile = "YourAudioFile.wav";
    
        const speechConfig = sdk.SpeechConfig.fromSubscription(key, region);
        const audioConfig = sdk.AudioConfig.fromAudioFileOutput(audioFile);
    
        // The language of the voice that speaks.
        speechConfig.speechSynthesisVoiceName = "en-US-JennyNeural"; 
    
        // 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 замените YourSubscriptionKey на ключ ресурса службы "Речь" и замените YourServiceRegion на регион ресурса службы "Речь". При желании можно переименовать выходной файл YourAudioFile.wav.

    Важно!

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

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

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

node.exe SpeechSynthesis.js

Указанный текст должен быть выведен в звуковой файл:

Enter some text that you want to speak >
> I'm excited to try text to speech
Now synthesizing to: YourAudioFile.wav
synthesis finished.

Remarks

Теперь, когда вы завершили работу с кратким руководством, ознакомьтесь с дополнительными рекомендациями.

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

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

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

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

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

Совет

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

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

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

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

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

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

Выполните следующие действия для синтеза речи в приложении 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.
        // Replace with your own subscription key and service region (e.g., "westus").
        NSString *speechKey = @"YourSubscriptionKey";
        NSString *serviceRegion = @"YourServiceRegion";
    
        SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:speechKey region:serviceRegion];
        speechConfig.speechSynthesisVoiceName = @"en-US-JennyNeural";
        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 замените YourSubscriptionKey на ключ ресурса службы "Речь" и замените YourServiceRegion на регион ресурса службы "Речь".

    Важно!

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

  7. При необходимости включите в AppDelegate.m имя голоса для синтеза речи, как показано ниже:

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

  9. Сделайте вывод отладки видимым: View(Представление)>Debug Area(Отладка области)>Activate Console(Активировать консоль).

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

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

Remarks

Теперь, когда вы завершили работу с кратким руководством, ознакомьтесь с дополнительными рекомендациями.

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

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

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

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

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

Совет

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

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

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

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

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

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

Выполните следующие действия для синтеза речи в приложении 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 = "YourSubscriptionKey"
            region = "YourServiceRegion"
    
            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-JennyNeural";
    
            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 замените YourSubscriptionKey на ключ ресурса службы "Речь" и замените YourServiceRegion на регион ресурса службы "Речь".

    Важно!

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

  7. При необходимости включите в AppDelegate.m имя голоса для синтеза речи, как показано ниже:

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

  9. Сделайте вывод отладки видимым, выбрав View (Представление)>Debug Area (Область отладки)>Activate Console (Активировать консоль).

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

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

Remarks

Теперь, когда вы завершили работу с кратким руководством, ознакомьтесь с дополнительными рекомендациями.

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

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

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

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

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

Совет

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

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

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

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

Установите Python версии от 3.7 до 3.10. Сначала ознакомьтесь со статьей Руководство по установке пакета SDK, чтобы узнать о дополнительных требованиях.

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

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

  1. Откройте командную строку, в которой должен быть создан новый проект, и создайте новый файл с именем speech-synthesis.py.

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

    pip install azure-cognitiveservices-speech
    
  3. Скопируйте в файл speech_synthesis.pyследующий код:

    import azure.cognitiveservices.speech as speechsdk
    
    speech_config = speechsdk.SpeechConfig(subscription="YourSubscriptionKey", region="YourServiceRegion")
    audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)
    
    # The language of the voice that speaks.
    speech_config.speech_synthesis_voice_name='en-US-JennyNeural'
    
    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. В speech_synthesis.py замените YourSubscriptionKey на ключ ресурса службы "Речь" и замените YourServiceRegion на регион ресурса службы "Речь".

    Важно!

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

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

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

python speech_synthesis.py

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

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

Remarks

Теперь, когда вы завершили работу с кратким руководством, ознакомьтесь с дополнительными рекомендациями.

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

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

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

Справочник по REST API преобразования речи в текст версии 3.0 | Справочник по REST API преобразования речи в текст для коротких звуковых фрагментов | Дополнительные примеры в GitHub

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

Совет

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

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

Синтезирование с записью в файл

В командной строке выполните приведенную ниже команду cURL. Вставьте в команду указанные ниже значения. Замените YourSubscriptionKey на ключ ресурса службы "Речь" и замените YourServiceRegion на регион ресурса службы "Речь". При желании можно переименовать выходной файл output.mp3.

Важно!

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

key="YourSubscriptionKey"
region="YourServiceRegion"

curl --location --request POST "https://$region.tts.speech.microsoft.com/cognitiveservices/v1" \
--header "Ocp-Apim-Subscription-Key: $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-JennyNeural'\''>
        my voice is my passport verify me
    </voice>
</speak>' > output.mp3

Указанный текст должен быть выведен в звуковой файл output.mp3.

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

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

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

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

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

Совет

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

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

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

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

  1. Установите CLI службы "Речь" с использованием интерфейса командной строки NuGet. Для этого введите следующую команду:

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

    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-JennyNeural"

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

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

spx help synthesize

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

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

Дальнейшие действия