어휘 업로드 - Amazon Polly

어휘 업로드

사용하는 어휘는 발음 어휘 사양(PLS) W3C 권장 사항을 준수해야 합니다. 자세한 내용은 W3C 웹 사이트의 발음 어휘 사양(PLS) 버전 1.0을 참조하세요.

Console - Lexicons tab

발음 어휘를 사용하려면 먼저 업로드해야 합니다. 콘솔에는 어휘를 업로드할 수 있는 두 개의 위치가 있는데 이들은 텍스트 투 스피치 탭과 어휘 탭입니다.

다음 프로세스는 선택한 언어에서 자주 사용되지 않는 단어와 구문의 발음 방식을 사용자 지정할 때 사용할 수 있는 어휘를 추가하는 방법을 설명합니다.

어휘 탭에서 어휘 추가
  1. AWS Management 콘솔에 로그인한 후 https://console.aws.amazon.com/polly/에서 Amazon Polly 콘솔을 엽니다.

  2. 어휘 탭을 선택합니다.

  3. 어휘 업로드를 선택합니다.

  4. 어휘 이름을 입력한 후 어휘 파일 선택을 사용하여 업로드할 어휘를 찾습니다. 확장자가 .pls 또는 .xml인 PLS 파일만 업로드할 수 있습니다.

  5. 어휘 업로드를 선택합니다. 같은 이름의 어휘(.pls 또는 .xml 파일)가 이미 있는 경우 어휘를 업로드하면 기존 어휘를 덮어씁니다.

Console - TTS tab
텍스트 투 스피치 탭에서 어휘를 추가하려면
  1. AWS Management 콘솔에 로그인한 후 https://console.aws.amazon.com/polly/에서 Amazon Polly 콘솔을 엽니다.

  2. 텍스트 투 스피치 탭을 선택합니다.

  3. 추가 설정을 확장하고 발음 사용자 지정을 켠 후 어휘 업로드를 선택합니다.

  4. 어휘 이름을 입력한 후 어휘 파일 선택을 사용하여 업로드할 어휘를 찾습니다. 확장자가 .pls 또는 .xml인 PLS 파일만 사용할 수 있습니다.

  5. 어휘 업로드를 선택합니다. 이름이 같은 어휘(.pls 또는 .xml 파일)가 이미 있는 경우 어휘를 업로드하면 기존 어휘를 덮어씁니다.

AWS CLI - one lexeme

Amazon Polly를 통해 PutLexicon을 사용하여 계정의 특정 AWS 리전에 발음 어휘를 저장할 수 있습니다. 이렇게 하면 서비스에서 텍스트 합성을 시작하기 전에 적용하려는 저장된 어휘를 SynthesizeSpeech 요청에 하나 이상 지정할 수 있습니다. 자세한 내용은 어휘 관리 섹션을 참조하세요.

다음과 같은 W3C PLS 준수 어휘를 고려해 보세요.

<?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>W3C</grapheme> <alias>World Wide Web Consortium</alias> </lexeme> </lexicon>

다음 사항에 유의하세요.

  • <lexicon> 요소에 지정된 두 가지 속성:

    • xml:lang 속성은 어휘가 적용되는 언어 코드와 en-US를 지정합니다. SynthesizeSpeech 호출에서 지정한 음성과 동일한 언어 코드(en-US)가 있는 경우 Amazon Polly에서 이 예제 어휘를 사용할 수 있습니다.

      참고

      DescribeVoices 작업을 사용하여 음성과 관련된 언어 코드를 찾을 수 있습니다.

       

    • alphabet 속성은 IPA를 지정합니다. 이는 발음에 국제 발음기호(IPA) 알파벳을 사용한다는 뜻입니다. IPA는 발음을 표기하기 위한 알파벳입니다. Amazon Polly는 확장 음성 평가 방법 발음기호(X-SAMPA)도 지원합니다.

       

  • <lexeme> 요소는 <grapheme>(즉, 단어의 텍스트 표현)와 <alias> 사이의 매핑을 설명합니다.

이 어휘를 테스트하려면 다음을 수행합니다.

  1. 어휘를 example.pls로 저장합니다.

  2. put-lexicon AWS CLI 명령을 실행하여 us-east-2 리전에 어휘(이름: w3c)를 저장합니다.

    aws polly put-lexicon \ --name w3c \ --content file://example.pls
  3. synthesize-speech 명령을 실행하여 샘플 텍스트를 오디오 스트림(speech.mp3)에 합성하고, 옵션으로 lexicon-name 파라미터를 지정합니다.

    aws polly synthesize-speech \ --text 'W3C is a Consortium' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names="w3c" \ speech.mp3
  4. 결과물 speech.mp3를 재생하면 텍스트의 W3C라는 단어가 월드 와이드 웹 컨소시엄으로 대체된 것을 확인할 수 있습니다.

위의 예제 어휘에서는 별칭을 사용합니다. 어휘에 언급된 IPA 알파벳은 사용되지 않습니다. 다음 어휘는 IPA 알파벳이 있는 <phoneme> 요소를 사용하여 표기 발음을 지정합니다.

<?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>pecan</grapheme> <phoneme>pɪˈkɑːn</phoneme> </lexeme> </lexicon>

동일한 단계를 수행하여 이 어휘를 테스트합니다. “pecan”이라는 단어가 포함된 입력 텍스트(예: “Pecan pie is delicious”)를 지정합니다.

PutLexicon API 작업에 대한 추가 코드 샘플은 다음 리소스를 참조하세요.

AWS CLI - multiple lexemes

Amazon Polly를 통해 PutLexicon을 사용하여 계정의 특정 AWS 리전에 발음 어휘를 저장할 수 있습니다. 이렇게 하면 서비스에서 텍스트 합성을 시작하기 전에 적용하려는 저장된 어휘를 SynthesizeSpeech 요청에 하나 이상 지정할 수 있습니다. 자세한 내용은 어휘 관리 섹션을 참조하세요.

이 예제에서 어휘를 통해 지정하는 어휘소는 합성을 위한 입력 텍스트에만 적용됩니다. 다음 어휘소를 고려해 보세요.

<?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>W3C</grapheme> <alias>World Wide Web Consortium</alias> </lexeme> <lexeme> <grapheme>W3C</grapheme> <alias>WWW Consortium</alias> </lexeme> <lexeme> <grapheme>Consortium</grapheme> <alias>Community</alias> </lexeme> </lexicon>

어휘에는 세 개의 어휘소가 지정되며, 그 중 두 개의 어휘소는 다음과 같이 W3C 자소의 별칭을 정의합니다.

  • 첫 번째 <lexeme> 요소는 별칭(월드 와이드 웹 컨소시엄)을 정의합니다.

  • 두 번째 <lexeme>는 대체 별칭(WWW 컨소시엄)을 정의합니다.

Amazon Polly는 어휘의 특정 자소를 첫 번째 대체어로 대체합니다.

세 번째 <lexeme>는 컨소시엄이라는 단어의 대체어(커뮤니티)를 정의합니다.

먼저 이 어휘를 테스트해 보겠습니다. 다음 샘플 텍스트를 오디오 파일(speech.mp3)에 합성하고 SynthesizeSpeech를 호출할 때 어휘를 지정한다고 가정해 보겠습니다.

The W3C is a Consortium

SynthesizeSpeech는 먼저 다음과 같이 어휘를 적용합니다.

  • 첫 번째 어휘소에 따라 W3C라는 단어를 월드 와이드 웹 컨소시엄으로 수정합니다. 수정된 텍스트는 다음과 같이 나타납니다.

    The World Wide Web Consortium is a Consortium
  • 세 번째 어휘소에 정의된 별칭은 원본 텍스트의 일부인 컨소시엄이라는 단어에만 적용되며, 그 결과 다음과 같은 텍스트가 나타납니다.

    The World Wide Web Consortium is a Community.

다음과 같이 AWS CLI를 사용하여 이를 테스트할 수 있습니다.

  1. 어휘를 example.pls로 저장합니다.

  2. put-lexicon 명령을 실행하여 이름이 w3c인 어휘를 us-east-2 리전에 저장합니다.

    aws polly put-lexicon \ --name w3c \ --content file://example.pls
  3. list-lexicons 명령을 실행하여 w3c 어휘가 반환된 어휘 목록에 있는지 확인합니다.

    aws polly list-lexicons
  4. synthesize-speech 명령을 실행하여 샘플 텍스트를 오디오 파일(speech.mp3)에 합성하고 옵션으로 lexicon-name 파라미터를 지정합니다.

    aws polly synthesize-speech \ --text 'W3C is a Consortium' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names="w3c" \ speech.mp3
  5. 결과물인 speech.mp3 파일을 재생하여 합성된 음성에 변경된 텍스트가 적용되는지 확인합니다.

PutLexicon API 작업에 대한 추가 코드 샘플은 다음 리소스를 참조하세요.