이 문서는 Media Translation 사용에 대한 기본사항을 설명하는 가이드입니다. 이 개념 가이드는 Media Translation에 대해 실행할 수 있는 요청 유형, 요청 작성 방법, 응답 처리 방법을 설명합니다. Media Translation의 모든 사용자는 이 API를 사용하기 전에 이 가이드와 관련 가이드 중 하나를 읽는 것이 좋습니다.
음성 번역 요청
Media Translation에는 음성 번역을 수행하는 방법이 한 가지 밖에 없었습니다.
- 스트리밍 번역(gRPC만 해당)은 gRPC 양방향 스트림에 제공되는 오디오 데이터를 번역합니다. 스트리밍 요청은 마이크에서 라이브 오디오 캡처와 같은 실시간 번역 용도로 설계되었습니다. 스트리밍 번역은 오디오 캡처 중에 중간 결과를 제공하므로, 사용자가 계속 말하는 중에도 결과를 표시할 수 있습니다. 스트리밍 번역 요청은 길이가 5분 이하인 오디오 데이터로 제한됩니다.
요청에는 구성 매개변수 또는 오디오 데이터가 포함됩니다. 다음 섹션에서는 이러한 유형의 음성 번역 요청, 요청을 통해 생성된 응답, 응답 처리 방법을 자세히 설명합니다.
스트리밍 음성 번역 요청
스트리밍 Media Translation API 요청은 음성 번역 구성 또는 오디오 데이터일 수 있습니다. 샘플 구성 요청은 다음과 같습니다.
{ "audio_config": { "audio_encoding": "linear16", "sample_rate_hertz": 16000, "source_language_code": "en-US", "target_language_code": "zh", "model" : "google-provided-model/video", } "single_utterance" : False }
샘플 오디오 데이터 요청은 다음과 같습니다.
{ "audio_content " : "\366c\256\375jQ\r\312\205j\271\243%/u\216z\330\354\221\360\253KJ\005\" }
첫 번째 StreamingTranslateSpeechRequest
에는 오디오 없이 StreamingTranslateSpeechConfig 유형의 구성이 포함되어야 합니다. 그런 다음 동일한 스트림을 통해 전송되는 후속 StreamingTranslateSpeechRequest
는 원시 오디오 바이트의 연속 프레임으로 구성됩니다.
StreamingTranslateSpeechConfig
에는 다음 필드가 포함됩니다.
audio_config
- (필수) TranslateSpeechConfig 유형의 오디오 구성 정보를 포함합니다.single_utterance
- (선택사항, 기본값은false
) 음성이 더 이상 인식되지 않으면 이 요청을 자동으로 종료할지 여부를 나타냅니다. 이 필드가 설정되면 Media Translation은 말의 멈춤, 정적 또는 비언어 오디오를 인식하여 번역을 종료할 시기를 결정합니다. 설정되지 않으면 스트림이 직접 종료되거나 스트림 제한 길이가 초과될 때까지 스트림이 오디오를 계속 듣고 처리합니다.single_utterance
를true
로 설정하면 음성 명령 처리에 유용합니다.
TranslateSpeechConfig
에는 다음과 같은 하위 필드가 있습니다.
audio_encoding
- (필수) 제공된 오디오의 인코딩 체계를AudioEncoding
유형으로 지정합니다. 코덱을 선택할 수 있는 경우, 최상의 성능을 원한다면FLAC
또는LINEAR16
과 같은 무손실 인코딩을 선택하는 것이 좋습니다. 자세한 내용은 오디오 인코딩을 참조하세요.sample_rate_hertz
- (필수) 제공된 오디오의 샘플링 레이트(Hz)를 지정합니다. 샘플링 레이트에 대한 자세한 내용은 아래의 샘플링 레이트를 참조하세요.source_language_code
- (필수) 제공된 오디오의 음성 인식에 사용할 언어와 리전/지역을 포함합니다. 언어 코드는 BCP-47 식별자여야 합니다. 언어 코드는 일반적으로 언어를 나타내는 기본 언어 태그와 보조 리전 하위 태그로 구성됩니다(예: 위의 예에서 'en'은 영어를, 'US'는 미국을 나타냄). 지원되는 언어 목록은 지원되는 언어를 참조하세요.- 'target_language_code' - (필수) 제공된 오디오의 텍스트 번역에 사용할 언어를 포함합니다. 언어 코드는 BCP-47 식별자여야 합니다. 번역 텍스트는 지역어를 고려하지 않으므로 일반적으로 언어 코드는 기본 언어 태그로만 구성됩니다. 하지만 'zh-CN'과 'zh-TW'는 다른 번역 텍스트입니다. 지원되는 언어 목록은 지원되는 언어를 참조하세요.
오디오는 StreamingTranslateSpeechRequest 유형의 audio_content
필드를 통해 Media Translation에 제공됩니다. audio_content
필드에는 요청에 삽입된 평가 대상 오디오가 포함됩니다.
자세한 내용은 아래의 오디오 콘텐츠 삽입을 참조하세요.
스트리밍 음성 번역 응답
스트리밍 음성 번역 결과는 StreamingTranslateSpeechResponse 유형인 일련의 응답 내에서 반환됩니다. 이러한 응답은 다음 필드로 구성됩니다.
speech_event_type
은 SpeechEventType 유형의 이벤트를 포함합니다. 이러한 이벤트 값은 단일 발화가 완료된 것으로 판단되는 시점을 나타냅니다. 음성 이벤트는 스트림 응답 내에서 마커로 작동합니다.END_OF_SINGLE_UTTERANCE
를 수신하면 사용자는 요청 전송을 중지하고 나머지 번역 응답을 수신할 때까지 대기해야 합니다.results
에는 StreamingTranslateSpeechResult 유형인 중간 또는 최종 결과의 목록이 포함됩니다.results
목록에는 다음과 같은 하위 필드가 있습니다.translation
에는 번역 텍스트가 포함됩니다.isFinal
은 이 목록 항목에서 얻은 결과가 중간 결과인지 최종 결과인지 나타냅니다.
이러한 요청과 응답 매개변수에 대한 자세한 내용은 아래에 나와 있습니다.
샘플링 레이트
구성 요청의 sample_rate_hertz
필드에서 오디오의 샘플링 레이트를 지정합니다. 이 샘플링 레이트는 연결된 오디오 콘텐츠 또는 스트림의 샘플링 레이트와 일치해야 합니다. Media Translation에서는 8,000Hz~48,000Hz의 샘플링 레이트가 지원됩니다.
소스 자료를 인코딩할 때 선택할 수 있다면 16,000Hz 샘플링 레이트를 사용하여 오디오를 캡처하는 것이 좋습니다. 값이 이 값보다 낮으면 음성 인식 정확도가 손상될 수 있으며, 결과적으로 번역 품질이 저하됩니다. 샘플링 레이트가 높아도 음성 인식 품질에는 큰 영향을 주지 않지만 지연 시간이 늘어날 수 있습니다.
그러나 오디오 데이터가 16,000Hz가 아닌 기존 샘플링 레이트로 이미 녹음된 경우에는 오디오를 16,000Hz로 다시 샘플링하지 마세요. 예를 들어 대부분의 이전 전화 통신 오디오는 8,000Hz 샘플링 레이트를 사용하므로 결과 정확도가 떨어질 수 있습니다. 이러한 오디오를 사용해야 하는 경우 Media Translation API에 원래 샘플링 레이트로 오디오를 제공합니다.
언어
Media Translation의 인식/번역 엔진은 다양한 언어/지역어 쌍을 지원합니다. 요청 구성의 source_language_code
및 target_language_code
필드에서 BCP-47 식별자를 사용하여 오디오의 언어(그리고 국가별 또는 지역별 방언)를 지정합니다.
언어 지원 페이지에서 각 기능에 지원되는 언어의 전체 목록을 확인할 수 있습니다.
모델 선택
Media Translation은 여러 머신러닝 모델 중 하나를 사용하여 오디오 파일을 번역할 수 있습니다. Google은 특정 오디오 유형 및 소스에 대해 이러한 모델을 학습시켰습니다.
Media Translation에 오디오 번역 요청을 보낼 때 모델을 지정하면 더욱 개선된 결과를 받을 수 있습니다. 이렇게 하면 Media Translation API가 특정 유형의 소스에서 음성 오디오를 인식하도록 학습된 머신러닝 모델을 사용하여 오디오 파일을 처리할 수 있습니다.
음성 번역 모델을 지정하려면 요청의 TranslateSpeechConfig 객체에 model
필드를 포함하여 사용할 모델을 지정합니다.
Media Translation은 오디오 파일의 번역에 다음 유형의 머신러닝 모델을 사용할 수 있습니다.
유형 | 이름 문자열 | 설명 |
---|---|---|
동영상 | google-provided-model/video |
여러 명의 화자를 포함하거나 동영상 클립의 오디오 스크립트를 작성하려면 이 모델을 사용합니다. 최상의 결과를 얻기 위해 16,000Hz 이상의 샘플링 레이트로 녹음된 오디오를 제공합니다. 참고: 표준 요금보다 비싼 프리미엄 모델입니다. |
전화 통화 | google-provided-model/(enhanced-)phone-call |
전화 통화 오디오 스크립트를 작성하려면 이 모델을 사용합니다. 일반적으로 전화 오디오는 8,000Hz 샘플링 레이트로 녹음됩니다. 참고: 고급 전화 모델은 표준 요금보다 비싼 프리미엄 모델입니다. |
Media Translation: 기본값 | google-provided-model/default |
오디오가 앞에서 설명한 모델에 해당하지 않는 경우에 이 모델을 사용합니다. 예를 들어, 화자가 1명뿐인 긴 형태의 오디오 녹음에 이 유형을 사용할 수 있습니다. 16,000Hz 이상의 샘플링 레이트로 녹음된 Hi-Fi 오디오가 좋습니다. |
오디오 콘텐츠 삽입
스트리밍 요청 내에 audio_content
필드를 전달하면 삽입된 오디오가 스트리밍 음성 번역 요청에 포함됩니다. gRPC 요청 내에서 콘텐츠로 제공되는 삽입된 오디오의 경우에는 오디오가 Proto3 직렬화와 호환되고 바이너리 데이터로 제공되어야 합니다.
Google Cloud 클라이언트 라이브러리를 사용하여 요청을 작성하는 경우 일반적으로 이 바이너리 데이터를 audio_content
필드에 직접 씁니다.
코드 샘플을 확인하려면 스트리밍 오디오 번역을 참조하세요.