지원되는 오디오 형식
IBM Watson® Speech to Text 서비스는 다양한 형식의 오디오에서 음성을 추출할 수 있습니다. 이 주제의 뒷부분에 있는 절은 이 서비스를 최대한으로 활용하는 데 도움을 줍니다. 오디오 처리에 익숙하지 않은 경우에는 먼저 오디오 용어 및 특성에서 오디오 개념에 대한 정보를 보십시오.
오디오 형식
표 1에서는 이 서비스가 지원하는 오디오 형식의 요약을 제공합니다.
- 오디오 형식은 각 지원되는 형식을 해당
Content-Type
지정으로 식별합니다. - 압축은 해당 형식의 압축에 대한 지원을 표시합니다. 압축을 지원하는 형식을 사용하면 오디오 크기를 줄여서 서비스에 전달할 수 있는 데이터의 양을 최대화할 수 있습니다. 그러나 압축이 오디오의 품질에 미칠 수 있는 효과를 고려해야 합니다. 자세한 정보는 데이터 한계 및 압축을 참조하십시오.
- Content-type 스펙은
Content-Type
헤더 또는 동등한 매개변수를 사용하여 서비스에 전송하는 오디오의 형식(MIME 유형)을 지정해야 하는지 여부를 표시합니다. 자세한 정보는 오디오 형식 지정을 참조하십시오.
마지막 열은 각 형식에 대한 추가 필수 매개변수 및 선택적 매개변수를 식별합니다. 다음 섹션에서 이러한 매개변수에 대한 자세한 정보를 제공합니다.
오디오 형식 | 압축 | Content-Type 지정 | 필수 매개변수 | 선택적 매개변수 |
---|---|---|---|---|
audio/alaw | 손실 | 필수 | rate={integer} |
없음 |
audio/basic | 손실 | 필수 | 없음 | 없음 |
audio/flac | 보존 | 선택사항 | 없음 | 없음 |
audio/g729 | 손실 | 선택사항 | 없음 | 없음 |
audio/l16 | 없음 | 필수 | rate={integer} |
channels={integer} endianness=big-endian endianness=little-endian |
audio/mp3 audio/mpeg |
손실 | 선택사항 | 없음 | 없음 |
audio/mulaw | 손실 | 필수 | rate={integer} |
없음 |
audio/ogg | 손실 | 선택사항 | 없음 | codecs=opus codecs=vorbis |
audio/wav | 없음, 무손실 또는 손실 | 선택사항 | 없음 | 없음 |
audio/webm | 손실 | 선택사항 | 없음 | codecs=opus codecs=vorbis |
audio/alaw 형식
a-law(audio/alaw
)는 단일 채널의 손실 오디오 형식입니다. 이 형식은 audio/basic
및 audio/mulaw
형식에 적용되는 u-law 알고리즘과 유사한 알고리즘을 사용하지만 a-law 알고리즘은 다른 신호 특성을 생성합니다. 이 형식을 사용하는 경우 이 서비스에는 형식 스펙에 대한 추가 매개변수가 필요합니다.
매개변수 | 설명 |
---|---|
rate 필수 |
오디오가 캡처되는 샘플링 속도를 지정하는 정수입니다. 예를 들어, 8kHz에서 캡처되는 오디오 데이터에 대해서는 다음 매개변수를 지정하십시오.
|
audio/basic 형식
기본 오디오(audio/basic
)는 8KHz로 샘플링된 8비트 u-law(또는 mu-law) 데이터를 사용하여 인코딩된 단일 채널의 손실 오디오 형식입니다. 이 형식은 오디오의 매체 유형을 표시하기 위한 가장 낮은 공통분모를 제공합니다. 이 서비스는 협대역 모델에만 audio/basic
형식의 파일을 사용하도록 지원합니다.
자세한 내용은 인터넷 엔지니어링 태스크포스(IETF)의 의견 요청(RFC)2046 및 iana iana.org/assignments/media-types/audio/basic 참조하세요.
audio/flac 형식
FLAC(Free Lossless Audio Codec)(audio/flac
)는 무손실 오디오 형식입니다.
audio/g729 형식
G.729(audio/g729
)는 8kHz로 인코딩된 데이터를 지원하는 손실 오디오 형식입니다. 이 서비스는 Annex J가 아니라 G.729 Annex D만 지원하며 협대역 모델에만 audio/g729
형식의 파일을 사용하도록 지원합니다.
audio/l16 형식
선형 16비트 PCM(Pulse-Code Modulation)(audio/l16
)은 비압축 오디오 형식입니다. 원시 PCM 파일을 전달하려면 이 형식을 사용하십시오. 선형 PCM 오디오는 컨테이너 WAV(Waveform Audio File Format) 파일 내부에서 전달될 수도 있습니다. audio/l16
형식을 사용하는 경우 서비스가 형식 스펙에 대한 추가 필수
및 선택적 매개변수를 허용합니다.
매개변수 | 설명 |
---|---|
rate 필수 |
오디오가 캡처되는 샘플링 속도를 지정하는 정수입니다. 예를 들어, 16kHz에서 캡처되는 오디오 데이터에 대해서는 다음 매개변수를 지정하십시오.
|
channels 선택사항 |
기본적으로 이 서비스는 오디오에 단일 채널이 있는 것으로 처리합니다. 오디오에 둘 이상의 채널이 있는 경우 채널 수를 식별하는 정수를 지정해야 합니다. 예를 들어, 16kHz로 캡처되는 2채널 오디오 데이터에 대해서는 다음 매개변수를 지정하십시오.
이 서비스는 최대 16개의 채널을 수락합니다. 트랜스코딩 중에 오디오를 하나의 채널로 다운믹스합니다. |
endianness 선택사항 |
기본적으로 이 서비스는 수신 오디오의 엔디안을 자동으로 검색합니다. 그러나 때때로 자동 검색이 실패하고 audio/l16 형식의 짧은 오디오에 대한 연결을 삭제할 수 있습니다. 엔디안을 지정하면 자동 검색이 사용 안함으로 설정됩니다. big-endian 또는 little-endian 을 지정하십시오. 예를 들어, 리틀 엔디안 형식으로 16kHz에서
캡처되는 오디오 데이터에 대해서는 다음 매개변수를 지정하십시오.
RFC(Request for Comment) 2045의 5.1절에는 |
자세한 내용은 IETF 의견 요청(RFC)2586을 참조하세요.
audio/mp3 및 audio/mpeg 형식
MP3(audio/mp3
) 또는 MPEG(Motion Picture Experts Group)(audio/mpeg
)은 손실 오디오 형식입니다. MP3 MPEG는 동일한 형식을 참조합니다.).
audio/mulaw 형식
mu-law(audio/mulaw
)는 단일 채널의 손실 오디오 형식입니다. 데이터가 u-law(또는 mu-law) 알고리즘을 사용하여 인코딩됩니다. audio/basic
형식은 항상 8kHz로 샘플링되는 동등한 형식입니다. 이 형식을 사용하는 경우 이 서비스에는 형식 스펙에 대한 추가 매개변수가 필요합니다.
매개변수 | 설명 |
---|---|
rate 필수 |
오디오가 캡처되는 샘플링 속도를 지정하는 정수입니다. 예를 들어, 8kHz에서 캡처되는 오디오 데이터에 대해서는 다음 매개변수를 지정하십시오.
|
audio/ogg 형식
Ogg (audio/ogg
)는 Xiph.org 재단에서 관리하는 개방형 컨테이너 형식입니다 xiph.org/ogg. 다음과 같은 손실 코덱으로 압축된 오디오 스트림을 사용할 수 있습니다.
- Opus (
audio/ogg;codecs=opus
). 자세한 내용은 opus-codec.org 참조하세요. - 보비스 (
audio/ogg;codecs=vorbis
). 자세한 내용은 xiph.org/vorbis 참조하세요.
OGG Opus는 선호되는 코덱입니다. 이는 낮은 지연 시간, 높은 오디오 품질과 줄어든 크기로 인해 OGG Vorbis의 타당한 후계자가 되었습니다. 이는 인터넷 엔지니어링 태스크포스(IETF)에서 의견 요청(RFC)6716으로 표준화했습니다.
컨텐츠 유형에서 코덱을 생략하는 경우, 이 서비스는 자동으로 입력 오디오에서 이 코덱을 발견합니다.
audio/wav 형식
WAV(Waveform Audio File Format)(audio/wav
)는 비압축 오디오 스트림에 자주 사용되는 컨테이너 형식이지만 압축 오디오도 포함할 수 있습니다. 이 서비스는 임의의 인코딩을 사용하는 WAV 오디오를 지원합니다. FFmpeg 제한사항으로 인해 최대 9개의 채널로 WAV 오디오를 수신합니다.
Opus 코덱으로 변환하여 WAV 오디오의 크기를 줄이는 방법에 대한 자세한 정보는 Opus 코덱을 사용하는 audio/ogg로 변환을 참조하십시오.
audio/webm 형식
웹 미디어(WebM) (audio/webm
)는 WebM 프로젝트 webmproject.org에서 유지 관리하는 개방형 컨테이너 형식입니다. 다음과 같은 손실 코덱으로 압축된 오디오 스트림을 사용할 수 있습니다.
- Opus (
audio/webm;codecs=opus
). 자세한 내용은 opus-codec.org 참조하세요. - 보비스 (
audio/webm;codecs=vorbis
). 자세한 내용은 xiph.org/vorbis 참조하세요.
코덱을 생략하면 이 서비스가 자동으로 입력 오디오에서 코덱을 검색합니다.
Chrome 브라우저에서 마이크의 오디오를 캡처하여 WebM 데이터 스트림으로 인코딩하는 방법을 보여주는 JavaScript 코드는 jsbin.com/hedujihuqo/edit?js,console을 참조하세요. 이 코드는 캡처된 오디오를 서비스에 제출하지 않습니다.
오디오 형식 지정
이 서비스에 전송하는 오디오의 형식(MIME 유형)은 Content-Type
요청 헤더 또는 이와 동등한 매개변수를 사용하여 지정합니다. 요청에 대한 오디오 형식을 지정할 수 있지만 항상 필요한 것은 아닙니다.
- 대부분의 형식에서 컨텐츠 유형은 선택사항입니다. 컨텐츠 유형을 생략하거나 서비스가 형식을 자동으로 발견하도록
application/octet-stream
을 지정하십시오. - 그 외 형식의 경우 컨텐츠 유형은 필수입니다. 이러한 형식은 서비스가 형식을 자동으로 검색하는 데 필요한 정보(예: 샘플링 속도)를 제공하지 않습니다.
audio/alaw
,audio/basic
,audio/l16
및audio/mulaw
형식에 대해서는 컨텐츠 유형을 지정해야 합니다.
Content-Type 지정이 필요한 형식에 대한 자세한 정보는 오디오 형식에 있는 표 1을 참조하십시오. 이 표의 Content-Type 지정 열은 컨텐츠 유형을 반드시 지정해야 하는지를 표시합니다.
각 서비스 인터페이스로 컨텐츠 유형을 지정하는 데 대한 예는 음성 인식 요청을 참조하십시오. 해당 주제에 있는 모든 예는 컨텐츠 유형을 지정합니다.
curl
명령을 사용하여 HTTP 인터페이스로 음성 인식을 요청하는 경우에는 Content-Type
헤더를 사용하여 오디오 형식을 지정하거나, "Content-Type: application/octet-stream"
을(를) 지정하거나, "Content-Type:"
만이라도 지정해야 합니다. 헤더를 완전히
생략하면 curl
이 기본값인 application/x-www-form-urlencoded
를 사용합니다.
데이터 한계 및 압축
이 서비스는 동기 HTTP 또는 WebSocket 요청으로는 최대 100MB의 오디오 데이터를, 비동기 HTTP 요청으로는 최대 1GB의 오디오 데이터를 변환을 위해 수락할 수 있습니다. 긴 연속 오디오 스트림 또는 대형 오디오 파일이 있는 경우에는 이러한 데이터 한계를 고려하고 이에 맞춰야 합니다.
음성 인식 요청으로 전달할 수 있는 오디오 데이터의 양을 최대화하는 한 가지 방법은 압축을 제공하는 형식을 사용하는 것입니다. 압축에는 손실과 무손실의 두 가지 기본 유형이 있습니다. 선택하는 오디오 형식과 압축 알고리즘은 음성 인식의 정확도에 직접적인 영향을 미칠 수 있습니다.
손실 압축을 사용하는 오디오 형식은 오디오 스트림의 크기를 현저히 감소시킵니다. 그러나 오디오를 너무 심하게 압축하면 변환의 정확도가 낮아질 수 있습니다. 사용자는 차이를 느끼지 못할 수 있지만, 서비스는 이러한 데이터 손실에 대해 훨씬 더 민감합니다.
대략적인 오디오 크기 비교
16kHz 및 샘플당 16비트로 샘플링된 2시간 동안의 연속 음성 전송으로 발생한 데이터 스트림의 대략적인 크기를 고려하십시오.
- 데이터가
audio/wav
형식으로 인코딩된 경우 2시간 길이 스트림의 크기가 서비스의 100B 한계를 크게 초과하는 230MB입니다. - 데이터가
audio/ogg
형식으로 인코딩된 경우 2시간 길이 스트림의 크기가 서비스의 한계에 크게 못 미치는 23MB입니다.
다음 표는 동기 HTTP 또는 WebSocket 요청으로 음성 인식을 위해 전송될 수 있는 다양한 형식의 오디오에 대한 최대 지속 시간을 대략적으로 나타낸 것입니다. 지속 시간은 100MB 서비스 한계를 고려합니다. 실제 값은 오디오의 복잡도와 달성된 압축률에 따라 다를 수 있습니다.
오디오 형식 | 오디오의 최대 지속 시간(근사치) |
---|---|
audio/wav |
55분 |
audio/flac |
1시간 40분 |
audio/mp3 |
3시간 20분 |
audio/ogg |
8시간 40분 |
IBM®은(는) 여러 오디오 형식을 비교하기 위한 테스트에서 WAV 및 FLAC 형식이 최상의 단어 오류 비율(WER)을 제공함을 판별했습니다. 이러한 형식은 데이터 손실 없이 오디오를 유지하므로 변환 정확도의 기준선 역할을 할 수 있습니다. Opus 인코딩된 Ogg 형식은 기준선에 비해 약간 낮아진 2%의 WER 저하를 나타냈습니다. MP3 형식은 기준선에 비해 10%의 WER 저하를 보이며 최악의 결과를 제공했습니다.
audio/ogg;codecs=opus
및 audio/webm;codecs=opus
형식은 일반적으로 동등하며 크기가 거의 동일합니다. 내부적으로 동일한 코덱을 사용하며 컨테이너 형식만 서로 다릅니다.
변환 정확도 최대화
변환 정확도를 최대화하려면 오디오 형식과 압축 알고리즘을 선택할 때 다음 권장사항을 고려하십시오.
- 비압축 및 무손실 오디오 형식을 사용하십시오. 오디오 길이가 55분 미만(100MB 미만)인 경우에는
audio/wav
형식을 사용하는 것을 고려하십시오. WAV 포맷은 55분의 오디오만을 수용할 수 있지만, 고객 지원 통화와 같은 대부분의 변환 응용에는 이 정도면 충분합니다. 그리고 압축되지 않은 WAV 오디오는 더 정확한 변환을 생성할 수 있습니다. - 비동기 HTTP 인터페이스를 사용하십시오. WAV 형식을 사용하도록 선택했으나 오디오가 100MB 한계를 초과하는 경우, 비동기 인터페이스는 최대 1GB의 데이터를 전송할 수 있도록 합니다.
- 압축하되 손실이 없는 오디오 형식을 사용하십시오. 오디오 파일을 압축해야 하는 경우에는 무손실 압축을 사용하는
audio/flac
형식을 사용하십시오. 무손실 압축은 오디오의 크기를 줄이지만 품질은 유지합니다. FLAC 포맷은 변환 정확도를 최대화하는 데 사용할 수 있는 좋은 후보입니다. - 손실 압축은 마지막 수단으로 사용하십시오. 더 강한 압축이 필요한 경우에는
audio/ogg
형식을 Opus 코덱과 함께 사용하십시오. Ogg 형식은 손실 압축을 사용하지만, Ogg 형식과 Opus 코덱의 조합은 손실 압축 알고리즘 중 음성 변환 정확도의 저하가 가장 낮은 것으로 나타났습니다.
그 외에 압축 수준이 더 강한 형식을 사용하는 것은 변환 정확도를 저하시킬 수 있습니다. 이 서비스에서 실험을 통해 자신의 오디오 및 응용에 가장 적합한 형식을 판별하십시오. 음성 인식을 개선하는 더 많은 방법은 음성 인식 개선을 위한 팁을 참조하십시오.
오디오 변환
다양한 도구를 사용하여 오디오를 다른 형식으로 변환할 수 있습니다. 이러한 도구는 오디오가 서비스에서 지원되지 않는 형식이거나 비압축 또는 무손실 형식인 경우에 유용할 수 있습니다. 후자의 경우 오디오를 손실 형식으로 변환하여 크기를 줄일 수 있습니다.
다음 프리웨어 도구 중 하나를 사용하여 오디오를 한 형식에서 다른 형식으로 변환할 수 있습니다.
- 사운드 eXchangeSoX)sox.sourceforge.net).
- FFmpeg ffmpeg.org). FFmpeg을 사용하여 오디오 및 동영상 데이터를 둘 다 포함하는 멀티미디어 파일로부터 오디오를 분리할 수도 있습니다. 자세한 정보는 동영상 파일에서 음성의 텍스트 변환을 참조하십시오.
- Audacity® audacityteam.org.
- Opus 코덱을 사용하는 Ogg 형식의 경우, opus-tools.
이러한 도구는 여러 오디오 형식에 대한 크로스 플랫폼 지원을 제공합니다. 또한 많은 도구를 사용하여 오디오를 재생할 수 있습니다. 이러한 도구를 사용하여 해당 저작권법을 위반하지 마십시오.
Opus 코덱을 사용하는 audio/ogg로 변환
오퍼스 도구에는 오퍼스 코덱에서 Ogg 오디오 작업을 위한 세 가지 명령줄 유틸리티가 포함되어 있습니다:
- Opusenc 유틸리티는 Opus 코덱을 사용하여 WAV, FLAC 및 기타 형식의 오디오를 Ogg로 인코딩합니다. 이 페이지에는 오디오 스트림을 압축하는 방법이 표시됩니다. 압축은 실시간 오디오를 서비스에 전달하는 데 유용합니다.
- Opusdec 유틸리티는 Opus 코덱의 오디오를 압축되지 않은 PCM WAV 파일로 디코딩합니다.
- Opusinfo 유틸리티는 Opus 파일에 대한 정보 및 유효성 검사를 제공합니다.
많은 사용자가 음성 인식을 위해 WAV 파일을 전송합니다. 이 서비스에는 동기 HTTP 및 WebSocket 요청에 대한 100MB 데이터 한계가 있으므로 WAV 형식은 단일 요청으로 인식될 수 있는 오디오의 양을 줄입니다. opusenc 명령을 사용하여 오디오를 선호하는 audio/ogg:codecs=opus
형식으로 변환하면 인식 요청과 함께 전송할 수 있는 오디오의
양이 크게 증가할 수 있습니다.
예를 들어, 256kps의 비트 전송률로 샘플당 16비트를 사용하는 비압축 광대역(16kHz) WAV 파일(input.wav)을 고려하십시오. 다음 명령은 Opus 코덱을 사용하는 파일(output.opus)로 오디오를 변환합니다.
opusenc input.wav output.opus
변환 시 오디오가 4배만큼 압축되고 64kbps의 비트 전송률로 출력 파일이 생성됩니다. 그러나 Opus 권장 설정에 따르면 비트 전송률을 24kbps로 안전하게 낮추면서도 음성 오디오의 전체 대역을 유지할 수 있습니다. 이와 같이 줄이면 오디오가 10배만큼
압축됩니다. 다음 명령은 --bitrate
옵션을 사용하여 24kbps의 비트 전송률로 출력 파일을 생성합니다.
opusenc --bitrate 24 input.wav output.opus
opusenc 유틸리티를 사용한 압축이 빠릅니다. 압축은 실제 시간보다 약 100배 더 빠른 속도로 발생합니다. 이 명령이 완료되면 실행 시간 및 결과 오디오 데이터에 대한 전체 세부사항을 제공하는 출력을 콘솔에 기록합니다.
동영상 파일에서 음성의 텍스트 변환
오디오 및 동영상을 둘 다 포함하는 멀티미디어 파일에서 음성을 텍스트로 변환할 수는 없습니다. 서비스는 음성 인식에 오디오 데이터만을 허용합니다.
오디오 및 동영상을 포함하는 멀티미디어 파일에서 음성을 텍스트로 변환하려면 동영상 데이터로부터 오디오 데이터를 분리해야 합니다. FFmpeg 유틸리티를 사용하여 동영상 소스에서 오디오를 분리할 수 있습니다. 자세한 내용은 ffmpeg.org 참조하세요.
음성 인식을 개선하기 위한 팁
다음 팁은 음성 인식의 품질을 개선하는 데 도움이 될 수 있습니다.
-
오디오를 녹음하는 방법에 따라 서비스의 결과에 큰 차이가 발생할 수 있습니다. 음성 인식은 입력 오디오 품질에 매우 민감할 수 있습니다. 가능한 최상의 정확도를 얻으려면 입력 오디오 음질이 가능한 한 양호한지 확인하십시오.
- 가능하면 가까운 음성 지향 마이크(예: 헤드셋)을 사용하고 필요한 경우 마이크 설정을 조정하십시오. 이 서비스는 전문 마이크를 사용하여 오디오를 캡처할 때 가장 잘 수행됩니다.
- 시스템의 기본 제공 마이크를 사용하지 마십시오. 일반적으로 모바일 디바이스 및 태블릿에 설치되어 있는 마이크는 적절하지 않습니다.
- 스피커가 마이크와 가까운지 확인하십시오. 스피커가 마이크에서 멀어질수록 정확도가 떨어집니다. 예를 들어, 10피트 거리에서는 이 서비스가 적절한 결과를 생성하는 데 어려움이 있습니다.
-
16KHz(광대역 모델의 경우) 또는 8kHz(협대역 모델의 경우) 이하의 샘플링 속도를 사용하고 샘플당 16비트를 사용하십시오. 이 서비스는 대상 모델(16kHz 또는 8kHz)보다 더 높은 샘플링 속도로 녹음된 오디오를 모델의 속도로 변환합니다. 따라서 주파수가 높을수록 인식 정확도가 향상되지 않지만 오디오 스트림의 크기가 증가합니다.
-
데이터 압축을 제공하는 형식으로 오디오를 인코딩하십시오. 데이터를 더 효율적으로 인코딩하면 100MB 한계를 초과하지 않고 훨씬 더 많은 오디오를 전송할 수 있습니다. 사람 음성의 동적 범위는 음악 등보다 더 제한적이므로, 음성은 다른 유형의 오디오보다 낮은 비트 전송률을 수용할 수 있습니다. 그럼에도 IBM®에서는 오디오 형식과 압축 알고리즘을 신중하게 선택하기를 권장합니다. 자세한 정보는 변환 정확도 최대화를 참조하십시오.
-
음성 인식은 주변 소음과 사람 음성의 미묘한 차이에 민감합니다.
- 엔진 소음, 작동 중인 디바이스, 거리의 소음, 주변 대화는 인식 정확도를 크게 떨어뜨릴 수 있습니다.
- 지역별 사투리나 발음의 차이도 정확도를 낮출 수 있습니다.
오디오에 이러한 특성이 있는 경우 음성 인식의 정확도를 높이려면 음향 모델 사용자 정의 사용을 고려하십시오. 자세한 정보는 사용자 정의 이해를 참조하십시오.
-
오디오의 특성에 대해 자세히 알아보려는 경우에는 오디오 메트릭을 음성 인식 요청과 함께 사용하는 것을 고려하십시오. 오디오 신호 처리에 대한 지식이 있는 경우, 이러한 메트릭은 오디오 특성에 대해 유의미하며 자세한 통찰을 제공할 수 있습니다. 자세한 정보는 오디오 메트릭을 참조하십시오.