다음을 통해 공유


포함된 음성

Embedded Speech는 클라우드 연결이 간헐적이거나 사용할 수 없는 디바이스 내 음성 텍스트 변환텍스트 음성 변환 시나리오를 위해 설계되었습니다. 예를 들어 산업용 장비, 음성 지원 에어컨 장치 또는 범위를 벗어나 주행할 수 있는 자동차에서 포함된 음성을 사용할 수 있습니다. 하이브리드 클라우드 및 오프라인 솔루션을 개발할 수도 있습니다. 디바이스가 은행 또는 정부 기관과 같은 안전한 환경에 있어야 하는 시나리오의 경우 먼저 연결이 끊긴 컨테이너를 고려해야 합니다.

Important

Microsoft는 포함된 음성에 대한 액세스를 제한합니다. Azure AI 음성 포함된 음성 제한된 액세스 검토를 통해 액세스를 신청할 수 있습니다. 자세한 내용은 포함된 음성에 대한 제한된 액세스를 참조하세요.

플랫폼 요구 사항

포함된 음성은 C#, C++및 Java용 Speech SDK(버전 1.24.1 이상)에 포함됩니다. 프로그래밍 언어 및 대상 플랫폼별 세부 정보에 대한 일반적인 Speech SDK 설치 요구 사항을 참조하세요.

대상 환경 선택

Arm64() 또는 Arm32() 하드웨어에서 Android 7.0(arm64-v8aAPI 수준 24armeabi-v7a) 이상이 필요합니다.

신경망 음성이 포함된 포함된 TTS는 Arm64에서만 지원됩니다.

제한 사항

포함된 음성은 C#, C++및 Java SDK에서만 사용할 수 있습니다. 다른 Speech SDK, Speech CLI 및 REST API는 포함된 음성을 지원하지 않습니다.

포함된 음성 인식은 모노 16비트, 8kHz 또는 16kHz PCM으로 인코딩된 WAV 오디오 형식만 지원합니다.

포함된 인공신경망 음성은 RAM 요구 사항이 100MB인 24kHz RIFF/RAW를 지원합니다.

포함된 Speech SDK 패키지

C# 포함된 애플리케이션의 경우 다음 C#용 Speech SDK 패키지를 설치합니다.

패키지 설명
Microsoft.CognitiveServices.Speech Speech SDK 사용에 필요
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR 포함된 음성 인식에 필요
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS 포함된 음성 합성에 필요
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime 포함된 음성 인식 및 합성에 필요
Microsoft.CognitiveServices.Speech.Extension.Telemetry 포함된 음성 인식 및 합성에 필요

C++ 포함된 애플리케이션의 경우 다음 C++용 Speech SDK 패키지를 설치합니다.

패키지 설명
Microsoft.CognitiveServices.Speech Speech SDK 사용에 필요
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR 포함된 음성 인식에 필요
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS 포함된 음성 합성에 필요
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime 포함된 음성 인식 및 합성에 필요
Microsoft.CognitiveServices.Speech.Extension.Telemetry 포함된 음성 인식 및 합성에 필요

대상 환경 선택

Java 포함 애플리케이션의 경우 client-sdk-embedded(.jar)를 종속 항목으로 추가합니다. 이 패키지는 클라우드, 포함 및 하이브리드 음성을 지원합니다.

Important

클라우드 Speech Services만 지원하므로 동일한 프로젝트에 client-sdk를 추가하지 마세요.

Apache Maven을 사용하여 Java용 Speech SDK를 설치하려면 다음 단계를 따릅니다.

  1. Apache Maven을 설치합니다.
  2. 새 프로젝트를 원하는 명령 프롬프트를 열고 새 pom.xml 파일을 만듭니다.
  3. 다음 XML 콘텐츠를 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-embedded</artifactId>
            <version>1.37.0</version>
            </dependency>
        </dependencies>
    </project>
    
  4. 다음 Maven 명령을 실행하여 Speech SDK 및 종속성을 설치합니다.
    mvn clean dependency:copy-dependencies
    

모델 및 음성

포함된 음성의 경우 음성 텍스트 변환을 위한 음성 인식 모델과 텍스트 음성 변환을 위한 음성 인식 모델을 다운로드해야 합니다. 제한된 액세스 검토 프로세스가 성공적으로 완료되면 지침이 제공됩니다.

다음 음성 텍스트 변환 모델을 사용할 수 있습니다. da-DK, de-DE, en-AU, en-CA, en-GB, en-IE, en-IN, en-NZ, en-US, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, pt-PT, zh-CN, zh-HK 및 zh-TW.

여기에서 모든 텍스트 음성 변환 로캘(fa-IR, 페르시아어(이란) 제외)은 선택한 여성 1개 및/또는 선택한 남성 음성 1개와 함께 기본 제공으로 사용할 수 있습니다. 우리는 우리가 더 많은 언어와 목소리에 대한 수요를 측정하는 데 도움이 입력을 환영합니다.

포함된 음성 구성

대부분의 Speech SDK 샘플에 표시된 것처럼 클라우드 연결 애플리케이션의 경우 Speech 리소스 키 및 지역과 함께 SpeechConfig 개체를 사용합니다. 포함된 음성의 경우 Speech 리소스를 사용하지 않습니다. 클라우드 리소스 대신 로컬 디바이스에 다운로드하는 모델과 음성 을 사용합니다.

EmbeddedSpeechConfig 개체를 사용하여 모델 또는 음성의 위치를 설정합니다. 애플리케이션이 음성 텍스트 변환 및 텍스트 음성 변환 모두에 사용되는 경우 동일한 EmbeddedSpeechConfig 개체를 사용하여 모델 및 음성의 위치를 설정할 수 있습니다.

// Provide the location of the models and voices.
List<string> paths = new List<string>();
paths.Add("C:\\dev\\embedded-speech\\stt-models");
paths.Add("C:\\dev\\embedded-speech\\tts-voices");
var embeddedSpeechConfig = EmbeddedSpeechConfig.FromPaths(paths.ToArray());

// For speech to text
embeddedSpeechConfig.SetSpeechRecognitionModel(
    "Microsoft Speech Recognizer en-US FP Model V8",
    Environment.GetEnvironmentVariable("MODEL_KEY"));

// For text to speech
embeddedSpeechConfig.SetSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    Environment.GetEnvironmentVariable("VOICE_KEY"));
embeddedSpeechConfig.SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm);

GetEnvironmentVariable 함수는 음성 텍스트 변환 빠른 시작텍스트 음성 변환 빠른 시작에서 정의됩니다.

// Provide the location of the models and voices.
vector<string> paths;
paths.push_back("C:\\dev\\embedded-speech\\stt-models");
paths.push_back("C:\\dev\\embedded-speech\\tts-voices");
auto embeddedSpeechConfig = EmbeddedSpeechConfig::FromPaths(paths);

// For speech to text
embeddedSpeechConfig->SetSpeechRecognitionModel((
    "Microsoft Speech Recognizer en-US FP Model V8",
    GetEnvironmentVariable("MODEL_KEY"));

// For text to speech
embeddedSpeechConfig->SetSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    GetEnvironmentVariable("VOICE_KEY"));
embeddedSpeechConfig->SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat::Riff24Khz16BitMonoPcm);
// Provide the location of the models and voices.
List<String> paths = new ArrayList<>();
paths.add("C:\\dev\\embedded-speech\\stt-models");
paths.add("C:\\dev\\embedded-speech\\tts-voices");
var embeddedSpeechConfig = EmbeddedSpeechConfig.fromPaths(paths);

// For speech to text
embeddedSpeechConfig.setSpeechRecognitionModel(
    "Microsoft Speech Recognizer en-US FP Model V8",
    System.getenv("MODEL_KEY"));

// For text to speech
embeddedSpeechConfig.setSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    System.getenv("VOICE_KEY"));
embeddedSpeechConfig.setSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm);

포함된 음성 코드 샘플

GitHub에서 포함된 음성 샘플을 사용할 준비가 된 것을 확인할 수 있습니다. 처음부터 프로젝트에 대한 언급은 샘플 특정 설명서를 참조하세요.

GitHub에서 포함된 음성 샘플을 사용할 준비가 된 것을 확인할 수 있습니다. 처음부터 프로젝트에 대한 언급은 샘플 특정 설명서를 참조하세요.

GitHub에서 포함된 음성 샘플을 사용할 준비가 된 것을 확인할 수 있습니다. 처음부터 프로젝트에 대한 언급은 샘플 특정 설명서를 참조하세요.

하이브리드 음성

HybridSpeechConfig 개체를 사용하는 하이브리드 음성은 기본적으로 클라우드 음성 서비스를 사용하고, 클라우드 연결이 제한되거나 느린 경우 대체 기능으로서 포함된 음성을 사용합니다.

음성 텍스트 변환(인식 모델)에 대한 하이브리드 음성 구성에서는 반복된 시도 후 클라우드 서비스에 대한 연결이 실패할 때 포함된 음성이 사용됩니다. 나중에 연결을 다시 시작하면 인식에서 클라우드 서비스를 다시 사용할 수 있습니다.

텍스트 음성(음성)에 대한 하이브리드 음성 구성을 사용하면 임베디드 및 클라우드 합성이 병렬로 실행되고 응답 속도에 따라 최종 결과가 선택됩니다. 최상의 결과는 각 새 합성 요청에서 다시 평가됩니다.

클라우드 음성

클라우드 음성의 경우 음성 텍스트 변환 빠른 시작텍스트 음성 변환 빠른 시작에 표시된 대로 SpeechConfig 개체를 사용합니다. 포함된 음성에 대한 빠른 시작을 실행하려면 SpeechConfigEmbeddedSpeechConfig 또는 HybridSpeechConfig로 바꿀 수 있습니다. 클라우드, 포함 또는 하이브리드 중 어떤 구성을 사용하든 대부분의 다른 음성 인식 및 합성 코드는 동일합니다.

포함된 음성 기능

포함된 음성의 경우 모델 구조의 차이로 인해 특정 SSML 태그가 현재 지원되지 않을 수 있습니다. 지원되지 않는 SSML 태그에 대한 자세한 내용은 다음 표를 참조하세요.

수준 1 수준 2 하위 값 포함된 NTTS 지원
오디오 src 아니요
bookmark
break strength 아니요
시간 아니요
침묵 type 선행, 테일링, 쉼표-정확한 등 아니요
value 아니요
emphasis level 아니요
lang 아니요
lexicon uri
수치 연산 아니요
msttsaudioduration value 아니요
msttsbackgroundaudio src 아니요
volume 아니요
페이드 인 아니요
페이드아웃 아니요
msttsexpress-as style 아니요
styledegree 아니요
역할(role) 아니요
msttssilence 아니요
msttsviseme type redlips_front, FacialExpression 아니요
p
음소 알파벳 ipa, sapi, ups 등
Ph
Prosody 윤곽선 문장 수준 지원, 단어 수준만 en-US 및 zh-CN
pitch
range
rate
volume
s
say-as interpret-as 문자, 맞춤법 검사, number_digit, 날짜 등
format
detail
하위 별칭
말할
voice 아니요

다음 단계