빠른 시작: 텍스트 음성 변환

참조 설명서 | 패키지(NuGet) | GitHub의 추가 샘플

이 빠른 시작에서는 텍스트 음성 변환 합성을 수행하는 애플리케이션을 실행합니다.

가입하거나 코드를 작성하지 않고도 Speech Studio 음성 갤러리에서 텍스트를 음성으로 변환해 볼 수 있습니다.

필수 조건

환경 설정

음성 SDK는 NuGet 패키지로 사용할 수 있으며 .NET Standard 2.0을 구현합니다. 이 가이드의 뒷부분에 있는 음성 SDK를 설치합니다. 모든 요구 사항은 음성 SDK 설치를 참조하세요.

환경 변수 설정

Azure AI 서비스 리소스에 액세스하려면 애플리케이션을 인증해야 합니다. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 예를 들어, 음성 리소스에 대한 키를 얻은 후 애플리케이션을 실행하는 로컬 머신의 새 환경 변수에 이 키를 씁니다.

코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안을 참조하세요.

Speech 리소스 키에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  • SPEECH_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  • SPEECH_REGION 환경 변수를 설정하려면 your-region를 리소스에 대한 지역 중 하나로 바꿉니다.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

참고 항목

현재 콘솔에서만 환경 변수에 액세스해야 하는 경우 환경 변수를 setx 대신 set으로 설정할 수 있습니다.

환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 Visual Studio를 사용하는 경우 Visual Studio를 다시 시작한 후 예제를 실행합니다.

스피커 출력으로 합성

다음 단계에 따라 콘솔 애플리케이션을 만들고 음성 SDK를 설치합니다.

  1. 새 프로젝트가 필요한 폴더에서 명령 프롬프트 창을 엽니다. 이 명령을 실행하여 .NET CLI를 사용하여 콘솔 애플리케이션을 만듭니다.

    dotnet new console
    

    명령은 프로젝트 디렉터리에 Program.cs 파일을 만듭니다.

  2. .NET CLI를 사용하여 새 프로젝트에 음성 SDK를 설치합니다.

    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을 다른 지원되는 음성으로 바꿉니다.

    모든 인공신경망 음성은 다국어이며 모국어와 영어를 유창하게 구사합니다. 예를 들어 영어로 된 입력 텍스트가 "I'm excited to try text to speech"이고 es-ES-ElviraNeural로 설정하면 텍스트를 스페인 악센트 영어로 읽습니다. 음성이 입력 텍스트의 언어를 말하지 않는 경우 Speech Service에서 합성된 오디오를 출력하지 않습니다.

  5. 새 콘솔 애플리케이션을 실행하여 기본 화자에 대한 음성 합성을 시작합니다.

    dotnet run
    

    Important

    SPEECH_KEYSPEECH_REGION환경 변수를 설정해야 합니다. 이 변수를 설정하지 않으면 샘플이 오류 메시지와 함께 실패합니다.

  6. 말하려는 텍스트를 입력합니다. 예를 들어 텍스트 음성 변환을 시도하게 되어 기쁩니다를 입력합니다. Enter 키를 선택하여 합성된 음성을 듣습니다.

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

설명

다양한 음성 합성 옵션

이 빠른 시작에서는 SpeakTextAsync 작업을 사용하여 입력한 짧은 텍스트 블록을 합성합니다. 또한 파일에서 긴 형식의 텍스트를 사용하고 음성 스타일, 운율 및 기타 설정을 더 세밀하게 제어할 수 있습니다.

Azure AI Speech의 OpenAI 텍스트 음성 변환 음성

OpenAI 텍스트 음성 변환 음성도 지원됩니다. Azure AI Speech의 OpenAI 텍스트 음성 변환 음성다국어 음성을 참조하세요. en-US-AvaMultilingualNeural을 지원되는 OpenAI 음성 이름(예: en-US-FableMultilingualNeural)으로 바꿀 수 있습니다.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

참조 설명서 | 패키지(NuGet) | GitHub의 추가 샘플

이 빠른 시작에서는 텍스트 음성 변환 합성을 수행하는 애플리케이션을 실행합니다.

가입하거나 코드를 작성하지 않고도 Speech Studio 음성 갤러리에서 텍스트를 음성으로 변환해 볼 수 있습니다.

필수 조건

환경 설정

음성 SDK는 NuGet 패키지로 사용할 수 있으며 .NET Standard 2.0을 구현합니다. 이 가이드의 뒷부분에 있는 음성 SDK를 설치합니다. 모든 요구 사항은 음성 SDK 설치를 참조하세요.

환경 변수 설정

Azure AI 서비스 리소스에 액세스하려면 애플리케이션을 인증해야 합니다. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 예를 들어, 음성 리소스에 대한 키를 얻은 후 애플리케이션을 실행하는 로컬 머신의 새 환경 변수에 이 키를 씁니다.

코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안을 참조하세요.

Speech 리소스 키에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  • SPEECH_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  • SPEECH_REGION 환경 변수를 설정하려면 your-region를 리소스에 대한 지역 중 하나로 바꿉니다.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

참고 항목

현재 콘솔에서만 환경 변수에 액세스해야 하는 경우 환경 변수를 setx 대신 set으로 설정할 수 있습니다.

환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 Visual Studio를 사용하는 경우 Visual Studio를 다시 시작한 후 예제를 실행합니다.

스피커 출력으로 합성

다음 단계에 따라 콘솔 애플리케이션을 만들고 음성 SDK를 설치합니다.

  1. Visual Studio Community에서 SpeechSynthesis라는 새 C++ 콘솔 프로젝트를 만듭니다.

  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을 다른 지원되는 음성으로 바꿉니다.

    모든 인공신경망 음성은 다국어이며 모국어와 영어를 유창하게 구사합니다. 예를 들어 영어로 된 입력 텍스트가 "I'm excited to try text to speech"이고 es-ES-ElviraNeural로 설정하면 텍스트를 스페인 악센트 영어로 읽습니다. 음성이 입력 텍스트의 언어를 말하지 않는 경우 Speech Service에서 합성된 오디오를 출력하지 않습니다.

  5. 새 콘솔 애플리케이션을 빌드하고 실행하여 기본 화자에 대한 음성 합성을 시작합니다.

    Important

    SPEECH_KEYSPEECH_REGION환경 변수를 설정해야 합니다. 이 변수를 설정하지 않으면 샘플이 오류 메시지와 함께 실패합니다.

  6. 말하려는 텍스트를 입력합니다. 예를 들어 텍스트 음성 변환을 시도하게 되어 기쁩니다를 입력합니다. Enter 키를 선택하여 합성된 음성을 듣습니다.

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

설명

다양한 음성 합성 옵션

이 빠른 시작에서는 SpeakTextAsync 작업을 사용하여 입력한 짧은 텍스트 블록을 합성합니다. 또한 파일에서 긴 형식의 텍스트를 사용하고 음성 스타일, 운율 및 기타 설정을 더 세밀하게 제어할 수 있습니다.

Azure AI Speech의 OpenAI 텍스트 음성 변환 음성

OpenAI 텍스트 음성 변환 음성도 지원됩니다. Azure AI Speech의 OpenAI 텍스트 음성 변환 음성다국어 음성을 참조하세요. en-US-AvaMultilingualNeural을 지원되는 OpenAI 음성 이름(예: en-US-FableMultilingualNeural)으로 바꿀 수 있습니다.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

참조 설명서 | 패키지(Go) | GitHub의 추가 샘플

이 빠른 시작에서는 텍스트 음성 변환 합성을 수행하는 애플리케이션을 실행합니다.

가입하거나 코드를 작성하지 않고도 Speech Studio 음성 갤러리에서 텍스트를 음성으로 변환해 볼 수 있습니다.

필수 조건

환경 설정

Go용 Speech SDK를 설치합니다. 요구 사항 및 지침은 음성 SDK 설치를 참조하세요.

환경 변수 설정

Azure AI 서비스 리소스에 액세스하려면 애플리케이션을 인증해야 합니다. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 예를 들어, 음성 리소스에 대한 키를 얻은 후 애플리케이션을 실행하는 로컬 머신의 새 환경 변수에 이 키를 씁니다.

코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안을 참조하세요.

Speech 리소스 키에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  • SPEECH_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  • SPEECH_REGION 환경 변수를 설정하려면 your-region를 리소스에 대한 지역 중 하나로 바꿉니다.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

참고 항목

현재 콘솔에서만 환경 변수에 액세스해야 하는 경우 환경 변수를 setx 대신 set으로 설정할 수 있습니다.

환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 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을 다른 지원되는 음성으로 바꿉니다.

    모든 인공신경망 음성은 다국어이며 모국어와 영어를 유창하게 구사합니다. 예를 들어 영어로 된 입력 텍스트가 "I'm excited to try text to speech"이고 es-ES-ElviraNeural로 설정하면 텍스트를 스페인 악센트 영어로 읽습니다. 음성이 입력 텍스트의 언어를 말하지 않는 경우 Speech Service에서 합성된 오디오를 출력하지 않습니다.

  4. 다음 명령을 실행하여 GitHub에서 호스팅되는 구성 요소에 연결되는 go.mod 파일을 만듭니다.

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

    Important

    SPEECH_KEYSPEECH_REGION환경 변수를 설정해야 합니다. 이 변수를 설정하지 않으면 샘플이 오류 메시지와 함께 실패합니다.

  5. 이제 코드를 빌드하고 실행합니다.

    go build
    go run speech-synthesis
    

설명

Azure AI Speech의 OpenAI 텍스트 음성 변환 음성

OpenAI 텍스트 음성 변환 음성도 지원됩니다. Azure AI Speech의 OpenAI 텍스트 음성 변환 음성다국어 음성을 참조하세요. en-US-AvaMultilingualNeural을 지원되는 OpenAI 음성 이름(예: en-US-FableMultilingualNeural)으로 바꿀 수 있습니다.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

참조 설명서 | GitHub의 추가 샘플

이 빠른 시작에서는 텍스트 음성 변환 합성을 수행하는 애플리케이션을 실행합니다.

가입하거나 코드를 작성하지 않고도 Speech Studio 음성 갤러리에서 텍스트를 음성으로 변환해 볼 수 있습니다.

필수 조건

환경 설정

환경을 설정하려면 Speech SDK를 설치합니다. 이 빠른 시작의 샘플은 Java 런타임에서 작동합니다.

  1. Apache Maven을 설치합니다. 그런 다음 mvn -v을(를) 실행하여 성공적인 설치를 확인합니다.

  2. 프로젝트의 루트에 pom.xml 파일을 만들고 다음 코드를 이 파일에 복사합니다.

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.microsoft.cognitiveservices.speech.samples</groupId>
        <artifactId>quickstart-eclipse</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <build>
            <sourceDirectory>src</sourceDirectory>
            <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                <source>1.8</source>
                <target>1.8</target>
                </configuration>
            </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
            <groupId>com.microsoft.cognitiveservices.speech</groupId>
            <artifactId>client-sdk</artifactId>
            <version>1.37.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. Speech SDK 및 종속성을 설치합니다.

    mvn clean dependency:copy-dependencies
    

환경 변수 설정

Azure AI 서비스 리소스에 액세스하려면 애플리케이션을 인증해야 합니다. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 예를 들어, 음성 리소스에 대한 키를 얻은 후 애플리케이션을 실행하는 로컬 머신의 새 환경 변수에 이 키를 씁니다.

코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안을 참조하세요.

Speech 리소스 키에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  • SPEECH_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  • SPEECH_REGION 환경 변수를 설정하려면 your-region를 리소스에 대한 지역 중 하나로 바꿉니다.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

참고 항목

현재 콘솔에서만 환경 변수에 액세스해야 하는 경우 환경 변수를 setx 대신 set으로 설정할 수 있습니다.

환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 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을 다른 지원되는 음성으로 바꿉니다.

    모든 인공신경망 음성은 다국어이며 모국어와 영어를 유창하게 구사합니다. 예를 들어 영어로 된 입력 텍스트가 "I'm excited to try text to speech"이고 es-ES-ElviraNeural로 설정하면 텍스트를 스페인 악센트 영어로 읽습니다. 음성이 입력 텍스트의 언어를 말하지 않는 경우 음성 서비스에서 합성된 오디오를 출력하지 않습니다.

  4. 새 콘솔 애플리케이션을 실행하여 기본 화자에 대한 음성 합성을 시작합니다.

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

    Important

    SPEECH_KEYSPEECH_REGION환경 변수를 설정해야 합니다. 이 변수를 설정하지 않으면 샘플이 오류 메시지와 함께 실패합니다.

  5. 말하려는 텍스트를 입력합니다. 예를 들어 텍스트 음성 변환을 시도하게 되어 기쁩니다를 입력합니다. Enter 키를 선택하여 합성된 음성을 듣습니다.

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

설명

다양한 음성 합성 옵션

이 빠른 시작에서는 SpeakTextAsync 작업을 사용하여 입력한 짧은 텍스트 블록을 합성합니다. 또한 파일에서 긴 형식의 텍스트를 사용하고 음성 스타일, 운율 및 기타 설정을 더 세밀하게 제어할 수 있습니다.

Azure AI Speech의 OpenAI 텍스트 음성 변환 음성

OpenAI 텍스트 음성 변환 음성도 지원됩니다. Azure AI Speech의 OpenAI 텍스트 음성 변환 음성다국어 음성을 참조하세요. en-US-AvaMultilingualNeural을 지원되는 OpenAI 음성 이름(예: en-US-FableMultilingualNeural)으로 바꿀 수 있습니다.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

참조 설명서 | 패키지(npm) | GitHub의 추가 샘플 | 라이브러리 소스 코드

이 빠른 시작에서는 텍스트 음성 변환 합성을 수행하는 애플리케이션을 실행합니다.

가입하거나 코드를 작성하지 않고도 Speech Studio 음성 갤러리에서 텍스트를 음성으로 변환해 볼 수 있습니다.

필수 조건

환경 설정

환경을 설정하려면 JavaScript용 Speech SDK를 설치합니다. 설치할 패키지 이름만 알고 싶으면 npm install microsoft-cognitiveservices-speech-sdk를 실행합니다. 단계별 설치 지침은 음성 SDK 설치를 참조하세요.

환경 변수 설정

Azure AI 서비스 리소스에 액세스하려면 애플리케이션을 인증해야 합니다. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 예를 들어, 음성 리소스에 대한 키를 얻은 후 애플리케이션을 실행하는 로컬 머신의 새 환경 변수에 이 키를 씁니다.

코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안을 참조하세요.

Speech 리소스 키에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  • SPEECH_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  • SPEECH_REGION 환경 변수를 설정하려면 your-region를 리소스에 대한 지역 중 하나로 바꿉니다.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

참고 항목

현재 콘솔에서만 환경 변수에 액세스해야 하는 경우 환경 변수를 setx 대신 set으로 설정할 수 있습니다.

환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 Visual Studio를 사용하는 경우 Visual Studio를 다시 시작한 후 예제를 실행합니다.

파일 출력으로 합성

음성 합성을 위한 Node.js 콘솔 애플리케이션을 만들려면 다음 단계를 수행합니다.

  1. 새 프로젝트를 원하는 콘솔 창을 연 다음 SpeechSynthesis.js라는 이름의 파일을 만듭니다.

  2. JavaScript용 Speech SDK를 설치합니다.

    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을 다른 지원되는 음성으로 바꿉니다.

    모든 인공신경망 음성은 다국어이며 모국어와 영어를 유창하게 구사합니다. 예를 들어 영어로 된 입력 텍스트가 "I'm excited to try text to speech"이고 es-ES-ElviraNeural로 설정하면 텍스트를 스페인 악센트 영어로 읽습니다. 음성이 입력 텍스트의 언어를 말하지 않는 경우 음성 서비스에서 합성된 오디오를 출력하지 않습니다.

  6. 콘솔 애플리케이션을 실행하여 파일에 대한 음성 합성을 시작합니다.

    node SpeechSynthesis.js
    

    Important

    SPEECH_KEYSPEECH_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 작업을 사용하여 입력한 짧은 텍스트 블록을 합성합니다. 또한 파일에서 긴 형식의 텍스트를 사용하고 음성 스타일, 운율 및 기타 설정을 더 세밀하게 제어할 수 있습니다.

Azure AI Speech의 OpenAI 텍스트 음성 변환 음성

OpenAI 텍스트 음성 변환 음성도 지원됩니다. Azure AI Speech의 OpenAI 텍스트 음성 변환 음성다국어 음성을 참조하세요. en-US-AvaMultilingualNeural을 지원되는 OpenAI 음성 이름(예: en-US-FableMultilingualNeural)으로 바꿀 수 있습니다.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

참조 설명서 | 패키지(다운로드) | GitHub의 추가 샘플

이 빠른 시작에서는 텍스트 음성 변환 합성을 수행하는 애플리케이션을 실행합니다.

가입하거나 코드를 작성하지 않고도 Speech Studio 음성 갤러리에서 텍스트를 음성으로 변환해 볼 수 있습니다.

필수 조건

환경 설정

Objective-C용 Speech SDK는 프레임워크 번들로 배포됩니다. 프레임워크는 iOS와 macOS 모두에서 Objective-C 및 Swift를 모두 지원합니다.

이 음성 SDK는 Xcode 프로젝트에서 CocoaPod로 사용하거나, 직접 다운로드하고 수동으로 연결할 수 있습니다. 이 가이드에서는 CocoaPod를 사용합니다. 해당 설치 지침에 설명된 대로 CocoaPod 종속성 관리자를 설치합니다.

환경 변수 설정

Azure AI 서비스 리소스에 액세스하려면 애플리케이션을 인증해야 합니다. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 예를 들어, 음성 리소스에 대한 키를 얻은 후 애플리케이션을 실행하는 로컬 머신의 새 환경 변수에 이 키를 씁니다.

코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안을 참조하세요.

Speech 리소스 키에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  • SPEECH_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  • SPEECH_REGION 환경 변수를 설정하려면 your-region를 리소스에 대한 지역 중 하나로 바꿉니다.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

참고 항목

현재 콘솔에서만 환경 변수에 액세스해야 하는 경우 환경 변수를 setx 대신 set으로 설정할 수 있습니다.

환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 Visual Studio를 사용하는 경우 Visual Studio를 다시 시작한 후 예제를 실행합니다.

스피커 출력으로 합성

macOS 애플리케이션에서 음성을 합성하려면 다음 단계를 수행합니다.

  1. Azure-Samples/cognitive-services-speech-sdk 리포지토리를 복제하여 음성 SDK를 사용하여 macOS의 Objective-C에서 오디오 합성 샘플 프로젝트를 가져옵니다. 리포지토리에는 iOS 샘플도 있습니다.

  2. 터미널에서 다운로드한 샘플 앱(helloworld)의 디렉터리를 엽니다.

  3. pod install 명령을 실행합니다. 이 명령은 샘플 앱 및 Speech SDK를 종속성으로 모두 포함하는 helloworld.xcworkspace Xcode 작업 영역을 생성합니다.

  4. XCode에서 helloworld.xcworkspace 작업 영역을 엽니다.

  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을 다른 지원되는 음성으로 바꿉니다.

    모든 인공신경망 음성은 다국어이며 모국어와 영어를 유창하게 구사합니다. 예를 들어 영어로 된 입력 텍스트가 "I'm excited to try text to speech"이고 es-ES-ElviraNeural로 설정하면 텍스트를 스페인 악센트 영어로 읽습니다. 음성이 입력 텍스트의 언어를 말하지 않는 경우 음성 서비스에서 합성된 오디오를 출력하지 않습니다.

  9. 디버그 출력을 표시하려면 보기>디버그 영역>콘솔 활성화를 선택합니다.

  10. 예제 코드를 빌드하고 실행하려면 메뉴에서 제품>실행을 선택하거나 재생 단추를 선택합니다.

    Important

    SPEECH_KEYSPEECH_REGION환경 변수를 설정해야 합니다. 이 변수를 설정하지 않으면 샘플이 오류 메시지와 함께 실패합니다.

텍스트를 입력하고 앱의 단추를 선택하면 합성된 오디오가 재생됩니다.

설명

다양한 음성 합성 옵션

이 빠른 시작에서는 SpeakText 작업을 사용하여 입력한 짧은 텍스트 블록을 합성합니다. 또한 파일에서 긴 형식의 텍스트를 사용하고 음성 스타일, 운율 및 기타 설정을 더 세밀하게 제어할 수 있습니다.

Azure AI Speech의 OpenAI 텍스트 음성 변환 음성

OpenAI 텍스트 음성 변환 음성도 지원됩니다. Azure AI Speech의 OpenAI 텍스트 음성 변환 음성다국어 음성을 참조하세요. en-US-AvaMultilingualNeural을 지원되는 OpenAI 음성 이름(예: en-US-FableMultilingualNeural)으로 바꿀 수 있습니다.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

참조 설명서 | 패키지(다운로드) | GitHub의 추가 샘플

이 빠른 시작에서는 텍스트 음성 변환 합성을 수행하는 애플리케이션을 실행합니다.

가입하거나 코드를 작성하지 않고도 Speech Studio 음성 갤러리에서 텍스트를 음성으로 변환해 볼 수 있습니다.

필수 조건

환경 설정

Swift용 Speech SDK는 프레임워크 번들로 배포됩니다. 프레임워크는 iOS와 macOS 모두에서 Objective-C 및 Swift를 모두 지원합니다.

이 음성 SDK는 Xcode 프로젝트에서 CocoaPod로 사용하거나, 직접 다운로드하고 수동으로 연결할 수 있습니다. 이 가이드에서는 CocoaPod를 사용합니다. 해당 설치 지침에 설명된 대로 CocoaPod 종속성 관리자를 설치합니다.

환경 변수 설정

Azure AI 서비스 리소스에 액세스하려면 애플리케이션을 인증해야 합니다. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 예를 들어, 음성 리소스에 대한 키를 얻은 후 애플리케이션을 실행하는 로컬 머신의 새 환경 변수에 이 키를 씁니다.

코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안을 참조하세요.

Speech 리소스 키에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  • SPEECH_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  • SPEECH_REGION 환경 변수를 설정하려면 your-region를 리소스에 대한 지역 중 하나로 바꿉니다.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

참고 항목

현재 콘솔에서만 환경 변수에 액세스해야 하는 경우 환경 변수를 setx 대신 set으로 설정할 수 있습니다.

환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 Visual Studio를 사용하는 경우 Visual Studio를 다시 시작한 후 예제를 실행합니다.

스피커 출력으로 합성

macOS 애플리케이션에서 음성을 합성하려면 다음 단계를 수행합니다.

  1. Azure-Samples/cognitive-services-speech-sdk 리포지토리를 복제하여 음성 SDK를 사용하여 macOS의 Swift에서 오디오 합성 샘플 프로젝트를 가져옵니다. 리포지토리에는 iOS 샘플도 있습니다.

  2. 터미널에서 다운로드한 샘플 앱(helloworld)의 디렉터리로 이동합니다.

  3. pod install 명령을 실행합니다. 이 명령은 샘플 앱 및 Speech SDK를 종속성으로 모두 포함하는 helloworld.xcworkspace Xcode 작업 영역을 생성합니다.

  4. XCode에서 helloworld.xcworkspace 작업 영역을 엽니다.

  5. 여기에 표시된 대로 AppDelegate.swift라는 파일을 열고 applicationDidFinishLaunchingsynthesize 메서드를 찾습니다.

    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을 다른 지원되는 음성으로 바꿉니다.

    모든 인공신경망 음성은 다국어이며 모국어와 영어를 유창하게 구사합니다. 예를 들어 영어로 된 입력 텍스트가 "I'm excited to try text to speech"이고 es-ES-ElviraNeural로 설정하면 텍스트를 스페인 악센트 영어로 읽습니다. 음성이 입력 텍스트의 언어를 말하지 않는 경우 음성 서비스에서 합성된 오디오를 출력하지 않습니다.

  9. 디버그 출력을 표시하려면 보기>디버그 영역>콘솔 활성화를 선택합니다.

  10. 예제 코드를 빌드하고 실행하려면 메뉴에서 제품>실행을 선택하거나 재생 단추를 선택합니다.

Important

SPEECH_KEYSPEECH_REGION환경 변수를 설정해야 합니다. 이 변수를 설정하지 않으면 샘플이 오류 메시지와 함께 실패합니다.

텍스트를 입력하고 앱의 단추를 선택하면 합성된 오디오가 재생됩니다.

설명

다양한 음성 합성 옵션

이 빠른 시작에서는 SpeakText 작업을 사용하여 입력한 짧은 텍스트 블록을 합성합니다. 또한 파일에서 긴 형식의 텍스트를 사용하고 음성 스타일, 운율 및 기타 설정을 더 세밀하게 제어할 수 있습니다.

Azure AI Speech의 OpenAI 텍스트 음성 변환 음성

OpenAI 텍스트 음성 변환 음성도 지원됩니다. Azure AI Speech의 OpenAI 텍스트 음성 변환 음성다국어 음성을 참조하세요. en-US-AvaMultilingualNeural을 지원되는 OpenAI 음성 이름(예: en-US-FableMultilingualNeural)으로 바꿀 수 있습니다.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

참조 설명서 | 패키지(PyPi) | GitHub의 추가 샘플

이 빠른 시작에서는 텍스트 음성 변환 합성을 수행하는 애플리케이션을 실행합니다.

가입하거나 코드를 작성하지 않고도 Speech Studio 음성 갤러리에서 텍스트를 음성으로 변환해 볼 수 있습니다.

필수 조건

환경 설정

Python용 Speech SDK는 PyPI(Python Package Index) 모듈로 사용할 수 있습니다. Python용 Speech SDK는 Windows, Linux 및 macOS와 호환됩니다.

Python 3.7 이상 버전을 설치합니다. 모든 요구 사항은 음성 SDK 설치를 참조하세요.

환경 변수 설정

Azure AI 서비스 리소스에 액세스하려면 애플리케이션을 인증해야 합니다. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 예를 들어, 음성 리소스에 대한 키를 얻은 후 애플리케이션을 실행하는 로컬 머신의 새 환경 변수에 이 키를 씁니다.

코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안을 참조하세요.

Speech 리소스 키에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  • SPEECH_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  • SPEECH_REGION 환경 변수를 설정하려면 your-region를 리소스에 대한 지역 중 하나로 바꿉니다.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

참고 항목

현재 콘솔에서만 환경 변수에 액세스해야 하는 경우 환경 변수를 setx 대신 set으로 설정할 수 있습니다.

환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 Visual Studio를 사용하는 경우 Visual Studio를 다시 시작한 후 예제를 실행합니다.

스피커 출력으로 합성

콘솔 애플리케이션을 만들려면 다음 단계를 수행합니다.

  1. 새 프로젝트가 필요한 폴더에서 명령 프롬프트 창을 엽니다. speech_synthesis.py라는 파일을 만듭니다.

  2. 다음 명령을 실행하여 Speech SDK를 설치합니다.

    pip install azure-cognitiveservices-speech
    
  3. 다음 코드를 speech_synthesis.py에 복사합니다.

    import os
    import azure.cognitiveservices.speech as speechsdk
    
    # This example requires environment variables named "SPEECH_KEY" and "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을 다른 지원되는 음성으로 바꿉니다.

    모든 인공신경망 음성은 다국어이며 모국어와 영어를 유창하게 구사합니다. 예를 들어 영어로 된 입력 텍스트가 "I'm excited to try text to speech"이고 es-ES-ElviraNeural로 설정하면 텍스트를 스페인 악센트 영어로 읽습니다. 음성이 입력 텍스트의 언어를 말하지 않는 경우 Speech Service에서 합성된 오디오를 출력하지 않습니다.

  5. 새 콘솔 애플리케이션을 실행하여 기본 화자에 대한 음성 합성을 시작합니다.

    python speech_synthesis.py
    

    Important

    SPEECH_KEYSPEECH_REGION환경 변수를 설정해야 합니다. 이 변수를 설정하지 않으면 샘플이 오류 메시지와 함께 실패합니다.

  6. 말하려는 텍스트를 입력합니다. 예를 들어 텍스트 음성 변환을 시도하게 되어 기쁩니다를 입력합니다. Enter 키를 선택하여 합성된 음성을 듣습니다.

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

설명

다양한 음성 합성 옵션

이 빠른 시작에서는 speak_text_async 작업을 사용하여 입력한 짧은 텍스트 블록을 합성합니다. 또한 파일에서 긴 형식의 텍스트를 사용하고 음성 스타일, 운율 및 기타 설정을 더 세밀하게 제어할 수 있습니다.

Azure AI Speech의 OpenAI 텍스트 음성 변환 음성

OpenAI 텍스트 음성 변환 음성도 지원됩니다. Azure AI Speech의 OpenAI 텍스트 음성 변환 음성다국어 음성을 참조하세요. en-US-AvaMultilingualNeural을 지원되는 OpenAI 음성 이름(예: en-US-FableMultilingualNeural)으로 바꿀 수 있습니다.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

음성을 텍스트로 변환하는 REST API 참조 | 짧은 오디오 참조를 위한 음성을 텍스트로 변환하는 REST API | GitHub의 추가 샘플

이 빠른 시작에서는 텍스트 음성 변환 합성을 수행하는 애플리케이션을 실행합니다.

가입하거나 코드를 작성하지 않고도 Speech Studio 음성 갤러리에서 텍스트를 음성으로 변환해 볼 수 있습니다.

필수 조건

환경 변수 설정

Azure AI 서비스 리소스에 액세스하려면 애플리케이션을 인증해야 합니다. 프로덕션의 경우 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 예를 들어, 음성 리소스에 대한 키를 얻은 후 애플리케이션을 실행하는 로컬 머신의 새 환경 변수에 이 키를 씁니다.

코드에 키를 직접 포함하지 말고 공개적으로 게시하지 마세요. Azure Key Vault와 같은 추가 인증 옵션은 Azure AI 서비스 보안을 참조하세요.

Speech 리소스 키에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  • SPEECH_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  • SPEECH_REGION 환경 변수를 설정하려면 your-region를 리소스에 대한 지역 중 하나로 바꿉니다.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

참고 항목

현재 콘솔에서만 환경 변수에 액세스해야 하는 경우 환경 변수를 setx 대신 set으로 설정할 수 있습니다.

환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 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

Important

SPEECH_KEYSPEECH_REGION환경 변수를 설정해야 합니다. 이 변수를 설정하지 않으면 샘플이 오류 메시지와 함께 실패합니다.

제공된 텍스트가 output.mp3라는 오디오 파일로 출력되어야 합니다.

음성 합성 언어를 변경하려면 en-US-AvaMultilingualNeural을 다른 지원되는 음성으로 바꿉니다.

모든 인공신경망 음성은 다국어이며 모국어와 영어를 유창하게 구사합니다. 예를 들어 영어로 된 입력 텍스트가 "I'm excited to try text to speech"이고 es-ES-ElviraNeural로 설정하면 텍스트를 스페인 악센트 영어로 읽습니다. 음성이 입력 텍스트의 언어를 말하지 않는 경우 Speech Service에서 합성된 오디오를 출력하지 않습니다.

자세한 내용은 텍스트 음성 변환 REST API를 참조하세요.

설명

Azure AI Speech의 OpenAI 텍스트 음성 변환 음성

OpenAI 텍스트 음성 변환 음성도 지원됩니다. Azure AI Speech의 OpenAI 텍스트 음성 변환 음성다국어 음성을 참조하세요. en-US-AvaMultilingualNeural을 지원되는 OpenAI 음성 이름(예: en-US-FableMultilingualNeural)으로 바꿀 수 있습니다.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

이 빠른 시작에서는 텍스트 음성 변환 합성을 수행하는 애플리케이션을 실행합니다.

가입하거나 코드를 작성하지 않고도 Speech Studio 음성 갤러리에서 텍스트를 음성으로 변환해 볼 수 있습니다.

필수 조건

환경 설정

다음 단계를 수행합니다. 플랫폼에 대한 추가 요구 사항은 음성 CLI 빠른 시작을 참조하세요.

  1. 다음 .NET CLI 명령을 실행하여 음성 CLI를 설치합니다.

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

음성 이름을 설정하지 않으면 en-US의 기본 음성이 사용됩니다.

모든 인공신경망 음성은 다국어이며 모국어와 영어를 유창하게 구사합니다. 예를 들어 영어로 된 입력 텍스트가 "I'm excited to try text to speech"이고 --voice "es-ES-ElviraNeural"로 설정하면 텍스트를 스페인 악센트 영어로 읽습니다. 음성이 입력 텍스트의 언어를 말하지 않는 경우 Speech Service에서 합성된 오디오를 출력하지 않습니다.

파일 입력 및 출력과 같은 추가 음성 합성 옵션에 대한 정보를 보려면 다음 명령을 실행합니다.

spx help synthesize

설명

SSML 지원

SSML(Speech Synthesis Markup Language)을 사용하여 음성 스타일, 운율 및 기타 설정을 더 세밀하게 제어할 수 있습니다.

Azure AI Speech의 OpenAI 텍스트 음성 변환 음성

OpenAI 텍스트 음성 변환 음성도 지원됩니다. Azure AI Speech의 OpenAI 텍스트 음성 변환 음성다국어 음성을 참조하세요. en-US-AvaMultilingualNeural을 지원되는 OpenAI 음성 이름(예: en-US-FableMultilingualNeural)으로 바꿀 수 있습니다.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

다음 단계