[Project를 위한 서비스]

[Project를 위한 서비스] Azure TTS 를 Cutomize 해보기

dyk98 2025. 1. 7. 16:00

Azure TTS 를 Cutomize 하기 전

이번 프로젝트를 할때 Azure로 TTS를 이용하기로 하였고 이 TTS의 기능을 활용하여 실제 원어민 발음과 같이 할수 있도록 모델 트레이닝을 해보고 그 모델을 적용하려고 한다. 그를 위해 난 일단 Azure 의 계정을 기존에 만들어 놓은걸 로그인했다.

Azure account 를 만들고 나오는 화면 ,,, 개인적으로 만든게 있어 일단은 블러처리 함.

그후, Cognitive Services 리소스를 설정해야한다.

여기서 Speech Service Resource 는 TTS 서비스를 사용하기 위해 Speech Service Resource 가 필요하며, 이것에서 API 키와 엔드 포인트정보를 제공한다.

이 Speech Service Resource를 설정할때, Region, Resource Name, Subscription Key, 그리고 Endpoint를 볼수 있는데,

  • 리전(region): 서비스가 활성화된 위치(예: eastus, westus 등).
  • 리소스 이름: Speech Service를 구분하기 위한 이름.
  • 구독 키(subscription key): API 인증에 사용되는 키.
  • 엔드포인트(endpoint): API 요청을 보낼 URL.
  • Subscription Key(API key) : Azure Speech Service와 통신하기 위한 인증에 필요
    • Speech Service 리소스 생성 후 제공되는 이며, API 요청시 헤더에 포함하여 인증하는데 사용
      'Ocp-Apim-Subscription-Key': '<your-subscription-key>'
  • TTS endpoint
    • TTS 요청 처리 위해 Azure 에서 제공하는 API URL
  • SSML (Speech Synthesis Markeup Language_
    • 텍스트 음성 변환 (TTS) 의 발음, 억양, 스타일을 제어
      • XML 기반의 표준언어 이며, SSML 확장을 통해 스타일(감정 표현등)과 목소리를 제어할수 있음
            <speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
             xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
            <voice name="en-US-JennyNeural">
              <mstts:express-as style="friendly">
                  Hello! Welcome to Azure TTS.
              </mstts:express-as>
            </voice>
            </speak>
  • HTTP client
  • API 요청을 보내고 응답을 처리하기 위해 필요, HTTP 클라이언트를 사용하여 Azure TTS AP에 요청보냄
    예를 들어 , Dart 에서 http 페키지를 사용
    final response = await client.post( Uri.parse('<endpoint>'), headers: { 'Ocp-Apim-Subscription-Key': '<your-subscription-key>', 'Content-Type': 'application/ssml+xml', 'X-Microsoft-OutputFormat': 'audio-16khz-128kbitrate-mono-mp3', }, body: ssml, );
  • 출력형식 또한 필요, TTS 에서 생성된 음성데이터의 품질과 형식을 결정 (mp3, wav, Opus)
    'X-Microsoft-OutputFormat': 'audio-16khz-128kbitrate-mono-mp3'
  • Voice
  • 이 기능을 통해 사용할 목소리를 지정해 자연스러운 음성을 생성할수 잇다, 다양한 언어 와 목소리 를 지원하기도한다.
  • Custom Voice (사용자 정의 음성)
  • 이기능을 통해 고유한 음성을 생성하며, 녹음데이터와 함꼐 사용자 저정의 음성 학습을 시킬수 잇음
  • Speech SDK or REST API
    • Azure TTS programming 을 사용하기 위해 필요
  • Speech SDK:
  • 다양한 프로그래밍 언어에서 사용할 수 있는 라이브러리.
  • 언어: Python, C#, JavaScript 등.
  • REST API:
  • HTTP 요청으로 직접 Azure TTS 호출.
  • REST API를 통해 SSML 기반 요청을 지원.

고로 체크해야할것들은

  1. Azure 계정 및 Speech Service 리소스 (Subscription Key, Region, Endpoint)
  2. SSML (발음, 스타일 제어)
  3. HTTP 클라이언트 또는 Speech SDK
  4. Voice 및 Output Format 설정
  5. Custom Voice

이 될수 있다.

reference:

https://learn.microsoft.com/ko-kr/azure/ai-services/speech-service/overview

 

Speech Service란? - Azure AI services

Speech Service는 Azure 리소스를 사용하여 음성 텍스트 변환, 텍스트 음성 변환 및 음성 번역 기능을 제공합니다. Speech SDK, Speech Studio 또는 REST API를 사용하여 애플리케이션, 도구 및 디바이스에 음성

learn.microsoft.com