cURL POST를 통해 말하기 속도(SSML) 조정

Stackoverflow는 학습과 탐색을 위한 바다입니다. 어떻게? 질문에 답해보시면 이해하실 겁니다 :)

몇 주 전에 StackOverflow에서 이 질문을 보았습니다.

How to adjust the speaking rate in Watson Text-to-Speech using cURL POST?



Speech-to-Text 및 Text-to-speech를 애드온으로 사용하는 코드를 작성했습니다. 그러나 말하는 속도와 SSML(Speech Synthesis Markup Language)에 대해서는 전혀 신경 쓰지 않았습니다.



그렇다면 이 말하는 속도와 SSML은 무엇일까요?



Virtualspeech에 따르면,

Speaking rate is often expressed in words per minute (wpm). To calculate this value, you’ll need to record yourself talking for a few minutes and then add up the number of words in your speech. Divide the total number of words by the number of minutes your speech took.

Speaking rate (wpm) = total words / number of minutes



IBM Cloud docs에 따라

The Speech Synthesis Markup Language (SSML) is an XML-based markup language that provides annotations of text for speech-synthesis applications. It is a recommendation of the W3C Voice-Browser Working Group that has been adopted as the standard markup language for speech synthesis by the VoiceXML 2.0 specification. SSML provides developers of speech applications with a standard way to control aspects of the synthesis process by enabling them to specify pronunciation, volume, pitch, speed, and other attributes via markup.



알겠습니다. 용어를 이해했습니다.

Stackoverflow 질문에 대한 답은 무엇입니까



다음은 POST 호출을 사용하는 작업 예제입니다.

curl -X POST -u "apikey:{API_KEY}" \
--header "Accept: audio/wav" \
--header "Content-Type: application/json" \
--data '{"text": "<p><s><prosody rate=\"+50%\">This is the first sentence of the paragraph.</prosody></s><s>Here is another sentence.</s><s>Finally, this is the last sentence.</s></p>"}' \
--output result.wav \
"{URL}/v1/synthesize" -v


Windows 명령 프롬프트(cmd)에서 아래 명령을 사용하여 JSON 파일input.json을 생성합니다.

echo {"text": "<p><s><prosody rate='+50%'>This is the first sentence of the paragraph.</prosody></s><s>Here is another sentence.</s><s>Finally, this is the last sentence.</s></p>"} > input.json


그런 다음 cURL을 사용하여 result.wav 파일 보기

curl -X POST -u "apikey:{API_KEY}" ^
--header "Accept: audio/wav" ^
--header "Content-Type: application/json" ^
--data @input.json ^
--output result.wav ^
"{URL}/v1/synthesize" -v


실제 question 문장의 경우 위의 JSON을 귀하의 JSON으로 바꾸십시오.

{"text":"<prosody rate='fast'>Adult capybaras are one meter long.</prosody>"}


다음은 SSML 특성을 이해하는 데 도움이 되는 위의 코드 샘플을 만들기 위해 따라간 몇 가지 유용한 링크입니다. 또한 아래 링크에서 <prosody>의 제한 사항을 확인하십시오.
  • https://cloud.ibm.com/docs/text-to-speech?topic=text-to-speech-usingHTTP#usingHTTP
  • https://cloud.ibm.com/docs/text-to-speech?topic=text-to-speech-elements#break_element
  • https://text-to-speech-demo.ng.bluemix.net
  • 좋은 웹페이지 즐겨찾기