음성 인식 결과의 이해
IBM Watson® Speech to Text 서비스는 사용자가 사용하는 인터페이스에 관계없이 지정된 매개변수를 반영하는 변환 결과를 리턴합니다. 이 서비스는 모든 JSON 응답 컨텐츠를 UTF-8 문자 세트로 리턴합니다.
기본 변환 응답
서비스는 음성 인식 요청에 있는 예에 대해 다음 응답을 리턴합니다. 이 예제에서는 오디오 파일과 해당 컨텐츠 유형만 전달합니다. 이 오디오는 단어 사이에 뚜렷한 일시정지가 없는 하나의 문장을 말합니다.
{
"result_index": 0,
"results": [
{
"alternatives": [
{
"confidence": 0.96,
"transcript": "several tornadoes touch down as a line of severe thunderstorms swept through Colorado on Sunday "
}
],
"final": true
}
]
}
이 서비스는 최상위 레벨 응답 오브젝트인 SpeechRecognitionResults 오브젝트를 리턴합니다. 이러한 단순 요청의 경우 오브젝트에 하나의 results 필드와 하나의 result_index 필드가 포함됩니다.
results필드는 텍스트 변환 결과에 대한 정보의 배열을 제공합니다. 이 예제에서는alternatives필드가transcript및 서비스의confidence를 결과에 포함합니다. 이러한 결과가 변경되지 않음을 표시하기 위해final필드의 값은true입니다.result_index필드는 결과에 대한 고유 ID를 제공합니다. 이 예제는 일시정지가 없는 단일 오디오 파일이 포함된 요청에 대한 최종 결과를 표시하며 요청에 추가 매개변수가 없습니다. 따라서 이 서비스는 항상 초기 인덱스인result_index값을 가지는 단일0필드를 리턴합니다.
입력 오디오가 더 복잡하거나 요청에 추가 매개변수가 포함되어 있는 경우 결과에 더 많은 정보가 포함될 수 있습니다.
alternatives 필드
alternatives 필드는 텍스트 변환 결과의 배열을 제공합니다. 이 요청의 경우 배열은 하나의 요소만을 포함합니다.
transcript필드는 텍스트 변환 결과를 제공합니다.confidence필드는 변환 내용에 대한 서비스의 신뢰도를 나타내는 점수로, 이 예의 경우에는 90%를 초과합니다.
final 및 result_index 필드는 이러한 필드의 의미를 규정합니다.
서비스에 대한 내부 변경사항 및 개선사항은 음성 내용 및 신뢰도 점수에 영향을 줄 수 있습니다. 예를 들어, 음성 인식은 보다 정확한 전사 결과를 반환하도록 개선될 수 있다. 마찬가지로, 음성 내용 및 단어 신뢰도 점수는 향상된 음성 인식의 결과로 약간 변경될 수 있습니다. 이러한 변경은 적당할 것으로 예상되지만, 시간이 경과함에 따라 대화 내용 및 신뢰도 점수가 변경되지 않을 것으로 예상되지 않습니다.
final 필드
final 필드는 음성 내용이 최종 텍스트 변환 결과를 표시하는지 여부를 나타냅니다.
- 변경되지 않도록 보장되는 최종 결과의 경우에는 이 필드가
true입니다. 서비스는 최종 결과에 대해 추가 업데이트를 전송하지 않습니다. - 변경될 수 있는 중간 결과의 경우에는 이 필드가
false입니다.interim_results매개변수를 WebSocket 인터페이스와 함께 사용하고 있는 경우, 서비스는 오디오를 변환하면서 여러results필드의 형태로 된, 발전하는 가설을 리턴합니다. 중간 결과의 경우final필드는 항상false이며confidence필드는 항상 생략됩니다.
WebSocket 인터페이스를 사용하여 대규모 음성 모델, 이전 및 차세대 모델로 중간 결과를 얻는 방법에 대한 자세한 내용은 다음 항목을 참조하세요:
result_index 필드
result_index 필드는 해당 요청에 대해 고유한 결과의 ID를 제공합니다. 중간 결과를 요청하는 경우 이 서비스는 입력 오디오의 진화하는 가설에 대해 여러 results 필드를 전송합니다. 동일한 오디오에 대한 최종 결과와 마찬가지로 동일한 오디오에 대한 중간 결과의 인덱스 값은 항상 동일합니다.
동일한 인덱스를 한 요청의 여러 최종 결과에 대해 사용할 수도 있습니다. 오디오가 휴지 또는 긴 침묵 시간을 포함하는 경우에는 서비스가 중간 결과의 요청 여부에 관계없이 동일한 인덱스를 사용하여 여러 최종 결과를 리턴할 수 있습니다. 자세한 정보는 일시정지 및 무음을 참조하십시오.
오디오에 대한 최종 결과를 수신한 후에는 이 서비스가 해당 인덱스를 사용하여 나머지 요청에 대한 추가 결과를 전송하지 않습니다. 추가 결과에 대한 인덱스는 1씩 증가합니다.
오디오가 여러 최종 결과를 생성하는 경우 최종 결과의 transcript 요소를 병합하여 오디오의 전체 텍스트 변환을 어셈블하십시오. 결과를 수신하는 순서대로 조합하십시오. 전체 최종 변환 내용을 조합하는 경우에는 final 필드가 false인 중간 결과를 무시할 수 있습니다.
추가 응답 컨텐츠
많은 음성 인식 매개변수는 서비스 응답의 컨텐츠에 영향을 줍니다. 일부 매개변수는 서비스가 여러 변환 결과를 리턴하도록 할 수 있습니다.
end_of_phrase_silence_timeinterim_resultssplit_transcript_at_phrase_end
일부 매개변수는 변환 내용의 컨텐츠를 수정할 수 있습니다.
profanity_filterredactionsmart_formatting
기타 매개변수는 결과에 정보를 추가할 수 있습니다.
audio_metricskeywords및keywords_thresholdmax_alternativesprocessing_metrics및processing_metrics_intervalspeaker_labelstimestampsword_alternatives_thresholdword_confidence
사용 가능한 매개변수에 대한 자세한 정보는 음성 인식 매개변수 사용 및 매개변수 요약을 참조하십시오.
일시정지 및 무음
서비스가 결과를 리턴하는 방식은 음성 인식에 사용하는 인터페이스 및 모델, 그리고 서비스에 전달하는 오디오에 따라 달라집니다. 기본적으로 서비스는 전체 오디오 스트림을 단일 발화로 변환하고 모든 오디오에 대한 단일 최종 결과를 리턴합니다. 그러나 다음 조건에 대해서는 서비스가 여러 최종 결과를 리턴할 수 있습니다.
- 오디오에서 발화된 단어 또는 문구 사이에 휴지 또는 긴 침묵이 포함되어 있습니다. 대부분의 언어의 경우, 서비스가 별도의 최종 결과를 생성하도록 판별하는 데 사용하는 기본 휴지 간격은 0.8초입니다. 중국어의 경우에는 기본 간격이 0.6초입니다.
end_of_phrase_silence_time매개변수를 사용하여 일시 중지 간격의 지속 시간을 변경할 수 있습니다. 자세한 정보는 구문 종료 무음 시간을 참조하십시오. - 이전 세대 모델의 경우, 발화가 최대값인 2분에 도달합니다. 서비스는 2분의 연속 처리 후 변환 내용을 여러 최종 결과로 분할합니다.
다음 예제는 HTTP 및 WebSocket 인터페이스의 두 가지 최종 결과가 포함된 응답을 보여줍니다. 두 경우 모두에 동일한 입력 오디오가 사용됩니다. 이 오디오는 "three"와 "four" 사이에 1초 동안의 일시정지를 두고 "one two three four five six"라는 구문을 말합니다. 이들 예에서는 음성 인식에 기본 일시정지 간격을 사용합니다.
-
HTTP 인터페이스의 경우, 서비스는 항상 단일
SpeechRecognitionResults오브젝트를 전송합니다.alternatives배열에는 각 최종 결과마다 별도의 요소가 포함됩니다. 응답에는 값이result_index인 하나의0필드가 있습니다.{ "result_index": 0, "results": [ { "alternatives": [ { "confidence": 0.99, "transcript": "one two three " } ], "final": true }, { "alternatives": [ { "confidence": 0.99, "transcript": "four five six " } ], "final": true } ] } -
WebSocket 인터페이스의 경우, 서비스는 이전 예와 동일한 결과를 전송합니다. 이 응답은 단일
SpeechRecognitionResults오브젝트를 포함하고,alternatives배열은 각 최종 결과에 대해 별도의 요소를 포함하며, 응답에는 값이0인 단일result_index필드가 있습니다.{ "result_index": 0, "results": [ { "alternatives": [ { "confidence": 0.99, "transcript": "one two three " } ], "final": true }, { "alternatives": [ { "confidence": 0.99, "transcript": "four five six " } ], "final": true } ] }WebSocket 인터페이스를 사용하면 중간 결과에 대한 응답이 더 많은 JSON 오브젝트를 포함합니다. WebSocket 인터페이스를 사용하여 대규모 음성 모델, 이전 및 차세대 모델로 중간 결과를 얻는 방법에 대한 자세한 내용은 다음 항목을 참조하세요:
스트리밍되는 오디오에 30초의 침묵 시간이 있으면 비활성 제한시간 초과가 발생할 수 있습니다. 자세한 정보는 제한시간을 참조하십시오.
말의 망설임과 망설임의 표시
연설에는 종종 망설임이나 언어적 일시정지가 포함되는데, 이를 불필요성이라고도 합니다. 사용자가 말하는 동안 "uhm", "어", "hmm" 과 같은 필러 및 관련된 비어휘적 표현을 삽입할 때 망설임이 발생합니다. 이 서비스는 대형 음성 모델, 이전 및 차세대 모델의 경우에는 망설임을 다르게 처리합니다.
이전 세대 모델에 대한 망설임
이전 세대 모델의 경우 이 서비스에는 대부분의 언어에 대한 변환 결과에 망설임 마커가 포함되어 있습니다. 언어마다 다른 주저 마커를 사용하거나 주저를 전혀 표시하지 않을 수 있습니다:
- 미국 영어의 경우, 망설임 표지는 토큰
%HESITATION(으)로 표시됩니다. 망설임 마커를 생성하는 단어는aah,ah,hm,hmm,huh,huh-uh,hum,ohh,ugh,uh,uh-huh,uh-oh,uh-uh,um및um-hum입니다. - 일본어의 경우, 망설임 표지는 일반적으로
D_(으)로 시작합니다. - 스페인어의 경우, 서비스는 망설임 표지를 생성하지 않습니다.
다음 예는 미국 영어 변환 내용에 대한 토큰 %HESITATION을(를) 보여줍니다.
{
"result_index": 0,
"results": [
{
"alternatives": [
{
"confidence": 0.99,
"transcript": ". . . that %HESITATION that's a . . ."
}
],
"final": true
}
]
}
망설임 표지는 중간과 최종 결과 모두에 표시될 수 있습니다. 스마트 형식화를 사용으로 설정하면 미국 영어에 대한 최종 결과에 망설임 표지가 표시되지 않습니다. 자세한 정보는 스마트 형식화를 참조하십시오.
망설임 표지(hesitation marker)는 음성 내용의 다른 필드에도 표시될 수 있습니다. 예를 들어, 음성 내용의 개별 단어에 대한 단어 시간소인을 요청하는 경우 이 서비스가 각 망설임 표지(hesitation marker)의 시작 및 종료 시간을 보고합니다.
{
"result_index": 0,
"results": [
{
"alternatives": [
{
"timestamps": [
. . .
[
"that",
7.31,
7.69
],
[
"%HESITATION",
7.69,
7.98
],
[
"that's",
7.98,
8.41
],
[
"a",
8.41,
8.48
],
. . .
],
"confidence": 0.99,
"transcript": ". . . that %HESITATION that's a . . ."
}
],
"final": true
}
]
}
망설임 표지를 애플리케이션에 사용할 필요가 없으면 음성 내용에서 안전하게 필터링할 수 있습니다.
차세대 모델에 대한 망설임
차세대 모델의 경우 모든 변환 결과에 실제 망설이는 단어가 포함되어 있습니다. 차세대 모델은 망설임을 단어로 처리하므로 중간 결과, 최종 결과 및 기타 필드 (예: 단어 시간소인에 대한 결과) 에 망설임이 나타날 수 있습니다. 차세대 모델은 망설임 마커를 생성하지 않으며 스마트 형식화를 사용으로 설정해도 최종 결과에서 망설임이 제거되지 않습니다. 다른 언어는 다른 망설임 단어를 식별할 수 있습니다.
- 미국 영어의 경우 이전 세대 모델과 마찬가지로 일반적인 망설임 단어는
aah,ah,hm,hmm,huh,huh-uh,hum,ohh,ugh,uh,uh-huh,uh-oh,uh-uh,um및um-hum입니다. 이 망설인 말이 모두 녹취록에 나오는 것은 아니다. - 일본어의 경우 망설임 단어는 일반적으로 반자 문자 (예:
ア,アノー,ウーン,エート,マ,テ,マ및ンート) 로 구성됩니다. 일부 망설임은 전자 문자로 인식될 수 있습니다.
응답에서 망설이는 것을 볼 가능성을 높이기 위해 사용자 정의 언어 모델을 사용할 수 있습니다. 사용자 정의 모델에서, 망설임을 포함하는 말뭉치를 추가하거나 사운드가 유사한 사용자 정의 단어를 작성하여 사용자가 불필요성을 말하는 방식을 캡처합니다. 사용자 정의 언어 모델에 대한 자세한 정보는 사용자 정의 언어 모델 작성 을 참조하십시오.
다음 예는 미국 영어 성적표에서 "음"을 머뭇거리는 모습을 보여줍니다:
{
"result_index": 0,
"results": [
{
"alternatives": [
{
"confidence": 0.99,
"transcript": ". . . that uhm that's a . . ."
}
],
"final": true
}
]
}
대문자 표시
대부분의 언어의 경우 이 서비스는 응답 내용에서 대문자 표시를 사용하지 않습니다. 대문자 표시가 애플리케이션에 중요한 경우 각 문장의 첫 번째 단어와 대문자 표시가 적합한 기타 용어를 대문자로 표시해야 합니다.
서비스는 다음 언어 및 모델에만 자동 대문자 표시를 적용합니다. 서비스는 스마트 형식화의 사용 여부에 관계없이 항상 이 대문자 표시를 적용합니다.
-
미국 영어 이전 세대 모델의 경우, 서비스는 많은 고유명사를 대문자로 표시합니다. 예를 들면, 서비스는 문구 barack obama graduated from columbia university에 대해 다음 변환 내용을 리턴합니다.
Barack Obama graduated from Columbia University서비스는 차세대 모델을 사용하는 미국 영어에 대해 고유명사를 대문자로 표시하지 않습니다.
-
독일어 차세대 모델의 경우, 서비스는 많은 명사를 대문자로 표시합니다. 예를 들면, 서비스는 문구 er braucht erst einen neuen eintrag ins vokabular punkt에 대해 다음 변환 내용을 리턴합니다.
er braucht erst einen neuen Eintrag ins Vokabular Punkt서비스는 이전 세대 모델을 사용하는 독일어에 대해 명사를 대문자로 표시하지 않습니다.
구두점
이 서비스는 기본적으로 응답 음성 내용에 문장 부호를 삽입하지 않습니다. 서비스의 결과에 필요한 문장 부호를 추가해야 합니다.
일부 언어의 경우 스마트 형식화를 사용하여 특정 키워드 문자열에 대해 쉼표, 마침표, 물음표 및 느낌표와 같은 문장 부호를 대체하도록 서비스에 지시할 수 있습니다. 자세한 정보는 스마트 형식화를 참조하십시오.