키워드 발견 및 단어 대체
IBM Watson® Speech to Text 서비스는 변환 결과에서 사용자 지정 키워드를 식별할 수 있습니다. 또한 변환 내용의 단어와 소리가 비슷한 대안 단어를 제안할 수도 있습니다. 두 경우 모두, 키워드와 단어 대안은 사용자가 지정한 신뢰도 수준을 충족해야 합니다.
키워드 발견
keywords 및 keywords_threshold 매개변수는 차세대 모델이 아닌 이전 세대 모델에서만 지원됩니다.
키워드 발견 기능은 텍스트 변환에서 지정된 문자열을 발견합니다. 이 서비스는 동일한 키워드를 여러 번 발견하고 발생할 때마다 보고할 수 있습니다. 이 서비스는 중간 결과가 아니라 최종 결과에서만 키워드를 발견합니다. 기본적으로 이 서비스는 키워드 발견을 수행하지 않습니다.
키워드 발견을 사용하려면 다음 매개변수를 둘 다 지정해야 합니다.
-
keywords매개변수를 사용하여 발견될 문자열의 배열을 지정합니다. 매개변수를 생략하거나 비어 있는 배열을 지정하면 서비스가 키워드를 발견하지 않습니다. 키워드 문자열에 둘 이상의 토큰이 포함될 수 있습니다.Speech to Text키워드에는 세 개의 토큰이 있습니다. 키워드 일치에서는 대소문자가 구분되지 않으므로Speech to Text는speech to text와 동일합니다.미국 영어의 경우 이 서비스는 음성 문자열 대 기록된 문자열과 일치하도록 각 키워드를 정규화합니다. 예를 들어, 기록하는 방식이 아니라 말하는 방식과 일치하도록 숫자를 정규화합니다. 다른 언어의 경우 말하는 방식대로 키워드를 지정해야 합니다.
-
keywords_threshold매개변수를 사용하여 키워드 일치에 대해 0.0 - 1.0 사이의 확률을 지정합니다. 이 임계값은 단어가 키워드와 일치하려면 서비스가 보유해야 하는 신뢰수준의 하한을 나타냅니다. 신뢰도가 지정된 임계값보다 크거나 같은 경우에만 텍스트 변환에서 키워드가 발견됩니다.작은 임계값을 지정하면 잠재적으로 많은 일치 항목이 생성될 수 있습니다. 임계값을 지정하는 경우 하나 이상의 키워드도 지정해야 합니다. 일치 항목을 리턴하지 않으려면 이 매개변수를 생략하십시오.
다음 한계는 키워드 발견에 적용됩니다.
- 단일 요청으로 최대 1000개의 키워드를 발견할 수 있습니다.
- 단일 키워드에는 최대 1024자가 포함될 수 있습니다. 2바이트 언어의 최대 유효 길이는 이보다 짧을 수 있습니다.
- 대부분의 HTTP 서버 및 프록시는 요청 매개변수의 한계를 8KB로 부과합니다. 매우 많은 수의 키워드 또는 길이가 긴 많은 키워드를 발견하면 이 한계를 초과할 수 있습니다. 더 많은 키워드를 일치시켜야 하는 경우 다중 파트 HTTP 요청의 사용을 고려하십시오.
키워드 발견은 오디오 스트림에서 키워드를 식별하는 데 필요합니다. 텍스트 변환은 서비스가 입력 오디오에 대해 수행한 최상의 디코딩 결과를 나타내기 때문에 최종 텍스트 변환을 처리하여 키워드를 식별할 수 없습니다. 관심 단어를 나타낼 수 있는 신뢰도 점수가 더 낮은 토큰을 포함하지 않습니다. 따라서 클라이언트 측에서 텍스트 변환에 텍스트 처리 도구를 적용해도 키워드가 식별되지 않을 수 있습니다. 디코딩 결과를 더 풍부하게 표시해야 하며 이러한 표현은 서버에서만 사용할 수 있습니다.
키워드 발견 결과
이 서비스는 keywords_result 배열의 요소인 results 필드에 결과를 리턴합니다. keywords_result 필드는 열거 가능 특성의 사전 또는 연관 배열입니다. 각 특성은 지정된 키워드로 식별되며 오브젝트 배열을 포함합니다. 이 서비스는 키워드에 대해 찾은 각 일치 항목에 대한 배열의 한 요소를 리턴합니다. 각 일치 항목에 대한 오브젝트에는
다음 필드가 포함됩니다.
normalized_text는 입력 오디오에서 일치하는 음성 구문으로 정규화되는 지정된 키워드입니다.start_time은 일치 항목의 시작 시간(초)입니다.end_time은 일치 항목의 종료 시간(초)입니다.confidence는 일치 항목이 지정된 키워드를 표시하는 서비스의 신뢰도입니다. 신뢰도는 최소한 결과에 포함될 지정된 임계값만큼 커야 합니다.
서비스에서 일치하는 항목을 찾을 수 없는 키워드는 배열에서 생략됩니다. 다음과 같은 경우 키워드를 찾을 수 없습니다.
-
오디오에 키워드가 포함되어 있지 않습니다. 키워드의 부재가 가장 명백한 설명입니다.
-
임계값이 너무 높게 설정되었습니다. 이 서비스는 신뢰수준이 낮은 키워드를 식별할 수 있지만, 이 경우 결과에서 일치 항목을 생략합니다.
-
여러 토큰이 포함된 키워드 문자열(예:
Speech to Text)을 말할 때 토큰 사이에 너무 많은 무음이 있습니다. 서비스가 오디오를 기록할 때 스트림을 일련의 블록으로 자릅니다. 각 블록은 무음 간격이 0.5초를 초과하지 않는 연속 오디오 청크를 나타냅니다. 이러한 블록으로 구성된 결과 오브젝트의 배열을 생성합니다.서비스는 다음의 경우에만 다중 토큰 키워드와 일치합니다.
- 키워드의 토큰이 동일한 블록에 있습니다.
- 토큰이 서로 인접하거나 0.1초 이하의 간격으로 구분되어 있습니다.
후자의 경우 "음"이나 "글쎄요"와 같은, 짧은 채움말 또는 어휘에 없는 발화가 키워드의 두 토큰 사이에 올 수 있습니다. 이 경우, 이전 세대 모델은 변환 내용의 이 위치에 망설임 표지를 삽입할 수 있습니다. 차세대 모델에는 필사 결과의 실제 망설임이 포함됩니다. 더 자세한 정보는 말의 멈춤과 망설임 표시에 나와 있습니다.
키워드 발견 예제
다음 요청 예는 keywords 매개변수를 세 문자열(colorado, tornado 및 tornadoes)의 URL 인코딩된 배열로 설정하고 keywords_threshold 매개변수를 0.5(으)로 설정합니다.
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file.flac \
"{url}/v1/recognize?keywords=colorado%2Ctornado%2Ctornadoes&keywords_threshold=0.5"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file.flac \
"{url}/v1/recognize?keywords=colorado%2Ctornado%2Ctornadoes&keywords_threshold=0.5"
서비스는 조건을 충족하는 colorado 및 tornadoes의 발생을 찾습니다.
{
"result_index": 0,
"results": [
{
"keywords_result": {
"colorado": [
{
"normalized_text": "Colorado",
"start_time": 4.94,
"confidence": 0.91,
"end_time": 5.62
}
],
"tornadoes": [
{
"normalized_text": "tornadoes",
"start_time": 1.52,
"confidence": 1.0,
"end_time": 2.15
}
]
},
"alternatives": [
{
"confidence": 0.96,
"transcript": "several tornadoes touch down as a line of
severe thunderstorms swept through Colorado on Sunday "
}
],
"final": true
}
]
}
단어 대체
word_alternatives_threshold 매개변수는 차세대 모델이 아닌 이전 세대 모델에서만 지원됩니다.
단어 대안 기능(혼동 네트워크라고도 함)은 입력 오디오의 단어와 소리가 비슷한 대안에 대한 가설을 보고합니다. 예를 들어, Austin이라는 단어는 오디오의 단어에 대한 가장 좋은 가설이 될 수 있습니다. 그러나 Boston이라는 단어는 동일한 시간 간격에서 가능한 또 다른 가설입니다. 가설은 공통 시작 및 종료 시간을 공유하지만 철자가 서로 다르며 일반적으로 신뢰도
점수가 서로 다릅니다.
기본적으로 이 서비스는 단어 대체를 보고하지 않습니다. 대체 가설을 수신하도록 표시하려면 word_alternatives_threshold 매개변수를 사용하여 0.0 - 1.0 사이의 확률을 지정합니다. 이 임계값은 서비스가 단어 대체로 리턴할 가설에서 보유해야 하는 신뢰수준의 하한을 나타냅니다. 가설은 신뢰도가 지정된 임계값보다 크거나 같은 경우에만 리턴됩니다.
단어 대체를 더 작은 간격 또는 구간으로 분할되는 텍스트 변환에 대한 타임라인으로 생각할 수 있습니다. 각 구간에는 철자 및 신뢰도가 다른 하나 이상의 가설이 있을 수 있습니다. word_alternatives_threshold 매개변수는 서비스가 리턴하는 결과를 밀도를 제어합니다. 작은 임계값을 지정하면 잠재적으로 많은 가설이 생성될 수 있습니다.
단어 대체 결과
이 서비스는 word_alternatives 배열의 요소인 results 필드에 결과를 리턴합니다. word_alternatives 필드는 각각 대체 단어에 대한 다음 필드를 제공하는 오브젝트의 배열입니다.
start_time은 가설이 리턴된 단어가 입력 오디오에서 시작되는 시간(초)을 표시합니다.end_time은 가설이 리턴된 단어가 입력 오디오에서 종료되는 시간(초)을 표시합니다.alternatives는 가설 오브젝트의 배열입니다. 각 오브젝트에는 가설에 대한 서비스의 신뢰도 점수를 표시하는confidence및 가설을 식별하는word가 포함됩니다. 신뢰도는 최소한 결과에 포함될 지정된 임계값만큼 커야 합니다. 서비스는 대체를 신뢰도에 따라 정렬합니다.
단어 대체 예제
다음 예제 요청은 낮은 word_alternatives_threshold로 0.10을 지정합니다. 단순 입력 오디오에는 공통적인 동음이의어 및 가능한 다른 음향 해석이 있는 단어가 포함됩니다.
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/wav" \
--data-binary @{path}audio-file.wav \
"{url}/v1/recognize?word_alternatives_threshold=0.10"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/wav" \
--data-binary @{path}audio-file.wav \
"{url}/v1/recognize?word_alternatives_threshold=0.10"
낮은 임계값으로 인해 서비스는 모든 단어의 시작 및 종료 시간과 함께 일부 단어에 대한 복수의 가설 및 신뢰도 점수를 리턴합니다. 최종 텍스트 변환 내용은 입력 오디오를 올바르게 인식합니다.
{
"result_index": 0,
"results": [
{
"final": true,
"alternatives": [
{
"transcript": "yes I ate that tuna ",
"confidence": 0.82
}
],
"word_alternatives": [
{
"start_time": 0.0,
"end_time": 0.31,
"alternatives": [
{
"word": "yes",
"confidence": 1.0
}
]
},
{
"start_time": 0.31,
"end_time": 0.46,
"alternatives": [
{
"word": "I",
"confidence": 1.0
}
]
},
{
"start_time": 0.46,
"end_time": 0.63,
"alternatives": [
{
"word": "ate",
"confidence": 0.89
},
{
"word": "eat",
"confidence": 0.11
}
]
},
{
"start_time": 0.63,
"end_time": 0.77,
"alternatives": [
{
"word": "that",
"confidence": 0.72
},
{
"word": "the",
"confidence": 0.27
}
]
},
{
"start_time": 0.77,
"end_time": 1.2,
"alternatives": [
{
"word": "tuna",
"confidence": 0.94
}
]
}
]
}
]
}