참고
이 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.
이 문서에서는 Azure AI Foundry 포털에서 Azure AI Speech로 비디오 번역을 사용하는 방법을 알아봅니다.
팁 (조언)
API를 사용하기 전에 Azure AI Foundry 포털 에서 비디오 번역을 사용해 보세요. 비디오 번역 REST API를 사용하여 비디오 번역을 애플리케이션에 통합합니다. API에 대한 자세한 내용은 비디오 번역 REST API를 참조하세요.
필수 조건
- Azure 구독. Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.
- 지원되는 지역의 음성에 대한 AI Foundry 리소스입니다. Speech 리소스가 없는 경우 Azure Portal에서 만듭니다.
- Azure Blob Storage 계정
- .mp4 형식, 5GB 미만 및 4시간 미만의 비디오 파일이 필요합니다. 테스트를 위해 Microsoft에서 https://speechstudioprodpublicsa.blob.core.windows.net/ttsvoice/VideoTranslation/PublicDoc/SampleData/es-ES-TryOutOriginal.mp4제공하는 샘플 비디오 파일을 사용할 수 있습니다.
- 비디오 번역에서 원본 및 대상 언어를 지원하는지 확인합니다.
비디오 번역 사용해 보기
비디오 번역 데모를 사용해 보려면 다음 단계를 수행합니다.
카탈로그 검색 상자에서 "Azure-AI-Speech"를 입력하고 검색합니다.
Azure-AI-Speech를 선택하면 Azure-AI-Speech 체험 페이지로 이동됩니다.
시나리오 >에 따라 음성 기능을선택합니다.
오른쪽의 샘플 옵션 에서 개인 또는 표준 음성을 선택합니다.
재생 단추를 선택하여 번역된 오디오를 듣습니다. 원본 비디오 탭을 선택하여 원래 오디오를 재생합니다.
음성 유형 옵션은 다음과 같습니다.
- 표준 음성: 이 서비스는 비디오의 화자의 음성과 표준 음성을 일치시켜 가장 적합한 표준 음성을 자동으로 선택합니다.
- 개인 음성: 비디오에서 화자의 음성과 일치하는 개인 음성을 사용합니다.
참고
API를 통해 개인 음성을 사용하려면 액세스를 신청해야 합니다.
동영상 번역 프로젝트 만들기
동영상 번역 프로젝트를 만들려면 다음 단계를 따릅니다.
카탈로그 검색 상자에서 "Azure-AI-Speech"를 입력하고 검색합니다.
Azure-AI-Speech를 선택하면 Azure-AI-Speech 체험 페이지로 이동됩니다.
시나리오 >에 따라 음성 기능을선택합니다.
내 비디오>업로드 비디오를 선택합니다.
비디오 업로드 페이지에서 음성 유형을 선택합니다.
음성 유형 옵션은 다음과 같습니다.
- 표준 음성: 이 서비스는 비디오의 화자의 음성과 표준 음성을 일치시켜 가장 적합한 표준 음성을 자동으로 선택합니다.
- 개인 음성: 비디오에서 화자의 음성과 일치하는 개인 음성을 사용합니다.
참고
개인 음성을 사용하려면 액세스 권한을 신청해야 합니다.
비디오 파일을 끌어서 놓거나 파일을 수동으로 선택하여 비디오 파일을 업로드합니다. 비디오는 .mp4 형식, 5GB 미만, 4시간 미만이어야 합니다.
화자 수, 비디오의 언어 및 언어로 번역을 제공합니다.
가격 정보 및 행동 강령을 승인하려면 상자를 선택합니다.
고급 설정을 조정하려면 다음: 고급 설정을 선택합니다.
필요에 따라 다음 설정을 조정할 수 있습니다.
- Lexicon 파일: 이 옵션을 사용하면 시스템에서 올바르게 인식하고 발음해야 하는 사용자 지정 단어 또는 구를 추가할 수 있습니다. Speech Studio의 오디오 콘텐츠 만들기 도구에서 어휘 파일을 만들고 여기에서 선택할 수 있습니다.
- 자막 추가: 이 옵션을 사용하면 동영상에 자막을 추가할 수 있습니다. 자막 파일은 WebVTT 또는 JSON 형식일 수 있습니다. 샘플 VTT 파일 다운로드를 선택하여 참조에 대한 샘플 WebVTT 파일을 다운로드할 수 있습니다.
사용자 고유의 자막 파일을 사용하려면 자막업로드를>. 원본 자막 파일 또는 대상 자막 파일을 업로드하도록 선택할 수 있습니다.
- 자동 자막: 원본 및 대상 언어 자막이 모두 생성됩니다.
- 원본 언어 자막 업로드: 원본 및 대상 언어 자막을 모두 생성합니다.
- 대상 언어 자막 업로드: 대상 언어 자막만 생성됩니다.
선택하고생성합니다.
Azure Blob Storage에 대한 업로드가 완료되면 프로젝트 탭에서 처리 상태를 확인할 수 있습니다.
프로젝트를 만든 후에는 프로젝트를 선택하여 자세한 설정을 검토하고 기본 설정에 따라 조정할 수 있습니다.
음성 설정 확인 및 조정
내 비디오를 선택하면 성공 상태라는 레이블이 지정된 비디오가 표시됩니다.
비디오를 선택하여 비디오 아래에있는 번역 및원본 탭을 확인합니다. 해당 탭을 선택하여 원본 및 번역된 비디오를 비교할 수 있습니다. 번역된 비디오는 자동으로 생성되며, 번역 품질을 확인하기 위해 재생할 수 있습니다.
비디오의 오른쪽에서 원래 스크립트와 번역된 스크립트를 모두 볼 수 있습니다. 원래 스크립트의 각 부분을 마우스로 가리키면 원래 비디오의 해당 세그먼트로 자동으로 이동하도록 비디오가 트리거되고, 번역된 스크립트의 각 부분을 마우스로 가리키면 해당 번역된 세그먼트로 이동하도록 비디오가 트리거됩니다.
음성 설정 조정, 세그먼트 추가 또는 제거, 스크립트의 시간 프레임 변경 등 비디오를 여러 번 변경할 수 있습니다. 변경 내용을 적용하기 위해 변경 내용 적용 을 선택한 후에만 요금이 청구됩니다. 저장을 선택하여 요금 없이 진행 중인 작업을 저장할 수 있습니다.
"식별되지 않은" 음성 이름이 있는 세그먼트가 발생하는 경우 특히 화자 음성이 겹치는 경우 시스템에서 음성을 정확하게 감지할 수 없기 때문일 수 있습니다. 이러한 경우 음성 이름을 수동으로 변경하는 것이 좋습니다.
다른 언어로 번역
현재 번역 프로젝트를 유지하고 원본 비디오를 다른 언어로 번역할 수 있습니다.
- 내 비디오를 선택한 다음 비디오 번역을 위한 타일을 선택합니다.
- + 새 언어를 선택합니다.
- 표시되는 새 언어로 번역 페이지에서 새 번역 언어 및 음성 유형을 선택합니다. 비디오가 번역되면 새 프로젝트가 자동으로 만들어집니다.
관련 콘텐츠
이 문서에서는 Speech Studio에서 Azure AI Speech로 비디오 번역을 사용하는 방법을 알아봅니다.
필수 구성 요소
- Azure 구독. Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.
- 지원되는 지역의 Speech 리소스입니다. Speech 리소스가 없는 경우 Azure Portal에서 만듭니다.
- Azure Blob Storage 계정
- .mp4 형식, 5GB 미만 및 4시간 미만의 비디오 파일이 필요합니다. 테스트를 위해 Microsoft에서 https://speechstudioprodpublicsa.blob.core.windows.net/ttsvoice/VideoTranslation/PublicDoc/SampleData/es-ES-TryOutOriginal.mp4제공하는 샘플 비디오 파일을 사용할 수 있습니다.
- 비디오 번역에서 원본 및 대상 언어를 지원하는지 확인합니다.
동영상 번역 프로젝트 만들기
동영상 번역 프로젝트를 만들려면 다음 단계를 따릅니다.
Speech Studio에 로그인합니다.
작업할 구독 및 음성 리소스를 선택합니다.
동영상 번역을 선택합니다.
프로젝트 만들기 및 관리 페이지에서 프로젝트 만들기를 선택합니다.
새 프로젝트 페이지에서 음성 유형을 선택합니다.
음성 유형 옵션은 다음과 같습니다.
- 표준 음성: 이 서비스는 비디오의 화자의 음성과 표준 음성을 일치시켜 가장 적합한 표준 음성을 자동으로 선택합니다.
- 개인 음성: 비디오에서 화자의 음성과 일치하는 개인 음성을 사용합니다.
참고
개인 음성을 사용하려면 액세스 권한을 신청해야 합니다.
비디오 파일을 끌어서 놓거나 파일을 수동으로 선택하여 비디오 파일을 업로드합니다. 비디오는 .mp4 형식, 5GB 미만, 4시간 미만이어야 합니다.
프로젝트 이름, 화자 수, 비디오의 언어 및 언어로 번역을 제공합니다.
가격 정보 및 행동 강령을 승인하려면 상자를 선택합니다.
고급 설정을 조정하려면 다음: 고급 설정을 선택합니다.
필요에 따라 다음 설정을 조정할 수 있습니다.
- Lexicon 파일: 이 옵션을 사용하면 시스템에서 올바르게 인식하고 발음해야 하는 사용자 지정 단어 또는 구를 추가할 수 있습니다. Speech Studio의 오디오 콘텐츠 만들기 도구에서 어휘 파일을 만들고 여기에서 선택할 수 있습니다.
- 자막 추가: 이 옵션을 사용하면 동영상에 자막을 추가할 수 있습니다. 자막 파일은 WebVTT 또는 JSON 형식일 수 있습니다. 샘플 VTT 파일 다운로드를 선택하여 참조에 대한 샘플 WebVTT 파일을 다운로드할 수 있습니다.
사용자 고유의 자막 파일을 사용하려면 자막업로드를>. 원본 자막 파일 또는 대상 자막 파일을 업로드하도록 선택할 수 있습니다.
- 자동 자막: 원본 및 대상 언어 자막이 모두 생성됩니다.
- 원본 언어 자막 업로드: 원본 및 대상 언어 자막을 모두 생성합니다.
- 대상 언어 자막 업로드: 대상 언어 자막만 생성됩니다.
선택하고생성합니다.
Azure Blob Storage에 대한 업로드가 완료되면 프로젝트 탭에서 처리 상태를 확인할 수 있습니다.
프로젝트를 만든 후에는 프로젝트를 선택하여 자세한 설정을 검토하고 기본 설정에 따라 조정할 수 있습니다.
음성 설정 확인 및 조정
프로젝트 세부 정보 페이지에서 비디오 아래에 번역된 탭과 원본 탭을 볼 수 있습니다. 해당 탭을 선택하여 원본 및 번역된 비디오를 비교할 수 있습니다. 번역된 비디오는 자동으로 생성되며, 번역 품질을 확인하기 위해 재생할 수 있습니다.
비디오의 오른쪽에서 원래 스크립트와 번역된 스크립트를 모두 볼 수 있습니다. 원래 스크립트의 각 부분을 마우스로 가리키면 원래 비디오의 해당 세그먼트로 자동으로 이동하도록 비디오가 트리거되고, 번역된 스크립트의 각 부분을 마우스로 가리키면 해당 번역된 세그먼트로 이동하도록 비디오가 트리거됩니다.
필요에 따라 세그먼트를 추가하거나 제거할 수도 있습니다. 세그먼트를 추가하려는 경우 새 세그먼트 타임스탬프가 이전 및 다음 세그먼트와 겹치지 않고 세그먼트 종료 시간이 시작 시간보다 커야 합니다. 타임스탬프의 올바른 형식은 hh:mm:ss.ms
입니다. 그렇지 않으면 변경 내용을 적용할 수 없습니다.
비디오 아래의 오디오 파형을 사용하여 스크립트의 시간 프레임을 직접 조정할 수 있습니다. 변경 내용 적용을 선택하면 조정이 적용됩니다.
"식별되지 않은" 음성 이름이 있는 세그먼트가 발생하는 경우 특히 화자 음성이 겹치는 경우 시스템에서 음성을 정확하게 감지할 수 없기 때문일 수 있습니다. 이러한 경우 음성 이름을 수동으로 변경하는 것이 좋습니다.
음성을 조정하려면 음성 설정을 선택하여 일부 내용을 변경합니다. 음성 설정 페이지에서 음성 유형, 성별 및 음성을 조정할 수 있습니다. 음성 오른쪽에 있는 음성 샘플을 선택하여 음성 선택을 결정합니다. 음성이 누락된 경우 스피커 추가를 선택하여 새 음성 이름을 추가할 수 있습니다. 설정을 변경한 후 업데이트를 선택합니다.
음성 설정 조정, 세그먼트 추가 또는 제거, 스크립트의 시간 프레임 변경 등 비디오를 여러 번 변경할 수 있습니다. 변경 내용을 적용하기 위해 변경 내용 적용 을 선택한 후에만 요금이 청구됩니다. 저장을 선택하여 요금 없이 진행 중인 작업을 저장할 수 있습니다.
다른 언어로 번역
현재 번역 프로젝트를 유지하고 원본 비디오를 다른 언어로 번역할 수 있습니다.
- 프로젝트를 엽니다.
- + 새 언어를 선택합니다.
- 표시되는 새 번역 페이지에서 새 번역된 언어 및 음성 유형을 선택합니다. 비디오가 번역되면 새 프로젝트가 자동으로 만들어집니다.
관련 콘텐츠
비디오 번역 REST API는 애플리케이션에 원활한 비디오 번역 통합을 용이하게 합니다. 비디오 번역 업로드, 관리 및 구체화를 지원하며, 지속적인 개선을 위해 여러 번의 반복을 지원합니다. 이 문서에서는 REST API를 통해 비디오 번역을 활용하는 방법을 알아봅니다.
필수 구성 요소
- Azure 구독. Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.
- 지원되는 지역의 음성에 대한 AI Foundry 리소스입니다. Speech 리소스가 없는 경우 Azure Portal에서 만듭니다.
- Azure Blob Storage 계정
- .mp4 형식, 5GB 미만 및 4시간 미만의 비디오 파일이 필요합니다. 테스트를 위해 Microsoft에서 https://speechstudioprodpublicsa.blob.core.windows.net/ttsvoice/VideoTranslation/PublicDoc/SampleData/es-ES-TryOutOriginal.mp4제공하는 샘플 비디오 파일을 사용할 수 있습니다.
- 비디오 번역에서 원본 및 대상 언어를 지원하는지 확인합니다.
팁 (조언)
시작하기 전에 비디오 번역 개요 를 참조하여 비디오 번역의 엔드 투 엔드 프로세스를 이해합니다.
워크플로
REST API를 사용하여 번역된 비디오를 가져오는 단계는 다음과 같습니다.
-
번역 개체를 만듭니다. 작업 상태가
Succeeded
또는Failed
에 도달할 때까지 주기적으로 확인하세요. -
번역 프로세스를 시작하는 반복을 만듭니다. 반복 작업의 상태가
Succeeded
또는Failed
에 도달할 때까지 주기적으로 확인합니다. - 번역된 비디오 및 자막을 다운로드합니다.
- 필요에 따라 번역 품질을 개선하기 위해 추가 반복을 만듭니 다.
1단계: 번역 만들기
중요하다
이 섹션에 설명된 대로 번역을 만들면 번역 프로세스가 시작되지 않습니다. 반복을 만들어 비디오 번역을 시작할 수 있습니다. REST API를 통해 만든 번역 및 반복은 포털에 동기화되지 않으며 그 반대의 경우도 마찬가지입니다.
비디오 번역을 만들려면 다음 지침에 따라 HTTP PUT 요청 경로 및 본문을 생성해야 합니다.
displayName
을(를) 지정하세요: 번역의 표시 이름입니다. 번역을 식별하는 데 도움이 되는 사용자 친화적인 이름입니다.description
을 지정합니다. 번역에 대한 간략한 설명입니다. 이는 선택 사항이지만 설명서 용도로 유용할 수 있습니다.원본 비디오의
sourceLocale
언어를 지정합니다. 비디오 파일에서 사용되는 언어입니다.targetLocale
을(를) 지정합니다: 비디오를 번역할 언어입니다. 번역의 대상 언어입니다.지정
voiceKind
: 번역에 사용할 음성의 유형입니다.PlatformVoice
와PersonalVoice
중에서 선택할 수 있습니다. 따라서PlatformVoice
시스템에서는 비디오의 화자의 음성을 표준 음성과 일치시켜 가장 적합한 표준 음성을 자동으로 선택합니다. 시스템에서PersonalVoice
는 몇 초 안에 고품질 음성 복제를 생성하는 모델을 제공합니다.참고
개인 음성을 사용하려면 액세스 권한을 신청해야 합니다.
speakerCount
을(를) 지정하십시오: 비디오의 화자 수. 이는 선택적 매개 변수이며 확실하지 않은 경우 1로 설정할 수 있습니다.지정
subtitleMaxCharCountPerSegment
: 자막 세그먼트당 허용되는 최대 문자 수입니다. 선택적 매개 변수이며 확실하지 않은 경우 30으로 설정할 수 있습니다.지정
exportSubtitleInVideo
: 비디오에서 자막을 내보낼지 여부를 나타내는 부울 값입니다. 선택적 매개 변수이며 비디오에 자막을true
포함하려는 경우 이를 설정할 수 있습니다.videoFileUrl
번역할 비디오 파일의 URL을 지정합니다. 비디오는 .mp4 형식, 5GB 미만, 4시간 미만이어야 합니다. Azure Blob Storage에 비디오를 업로드하고 Blob URL을 사용할 수 있습니다. 테스트를 위해 Microsoft에서 https://speechstudioprodpublicsa.blob.core.windows.net/ttsvoice/VideoTranslation/PublicDoc/SampleData/es-ES-TryOutOriginal.mp4제공하는 샘플 비디오 파일을 사용할 수 있습니다.
인증 및 권한 부여의 경우 요청에 다음 헤더 및 경로 ID를 포함해야 합니다.
-
Operation-Id
헤더 설정:Operation-Id
각 반복 만들기와 같이 각 작업에 대해 고유해야 합니다.Your-Operation-Id
를 이 작업의 고유 ID로 바꾸십시오. - 경로에서
Your-Translation-Id
을(를) 교체하십시오. 번역 ID는 Speech 리소스에 대한 모든 번역에서 고유해야 합니다. 선택한 번역 ID로 대체Your-Translation-Id
합니다. 이 ID를 사용하여 후속 API 호출에서 번역을 참조합니다. -
YourSpeechResourceKey
를 음성 리소스 키로 바꾸고,YourSpeechResourceRegion
을 음성 리소스 지역으로 바꿉니다.
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" -H "Operation-Id: Your-Operation-Id-1" -H "Content-Type: application/json" -d '{
"displayName": "My translation object",
"description": "My translation object for video translation iterations",
"input": {
"sourceLocale": "es-ES",
"targetLocale": "en-US",
"voiceKind": "PlatformVoice",
"speakerCount": 1,
"subtitleMaxCharCountPerSegment": 50,
"exportSubtitleInVideo": false,
"enableLipSync": false,
"videoFileUrl": "https://speechstudioprodpublicsa.blob.core.windows.net/ttsvoice/VideoTranslation/PublicDoc/SampleData/es-ES-TryOutOriginal.mp4"
}
}' "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id?api-version=2024-05-20"
중요하다
다른 설정으로 기존 번역 ID를 사용하려고 하면 API에서 오류를 반환합니다. 번역 ID는 각 번역에 대해 고유해야 합니다. 반복을 만들어 기존 번역을 변경할 수 있습니다.
응답 본문은 다음 형식으로 표시되어야 합니다.
{
"input": {
"sourceLocale": "es-ES",
"targetLocale": "en-US",
"voiceKind": "PlatformVoice",
"speakerCount": 1,
"subtitleMaxCharCountPerSegment": 50,
"exportSubtitleInVideo": false,
"enableLipSync": false
},
"status": "NotStarted",
"lastActionDateTime": "2025-03-06T19:13:35.669Z",
"id": "Your-Translation-Id",
"displayName": "My translation object",
"description": "My translation object for video translation iterations",
"createdDateTime": "2025-03-06T19:13:35.669Z"
}
지정한 작업 ID를 사용하여 작업 ID로 작업을 가져오는 API를 주기적으로 사용하고, 반환된 상태가 Succeeded
또는 Failed
가 될 때까지 계속 진행할 수 있습니다. 이 작업을 사용하면 반복 프로세스 만들기의 진행률을 모니터링할 수 있습니다. 상태 속성은 NotStarted
에서 Running
로 진행하고, 마지막으로 Succeeded
또는 Failed
로 진행되어야 합니다.
2단계: 반복 만들기
비디오 번역을 시작하거나 기존 번역에 대한 반복을 업데이트하려면 다음 지침에 따라 HTTP PUT 요청 경로 및 본문을 생성해야 합니다.
- 입력해야 할 사항을 설정하십시오:
speakerCount
,subtitleMaxCharCountPerSegment
,exportSubtitleInVideo
또는webvttFile
와 같은 세부 정보를 포함하십시오. 기본적으로 출력 비디오에 자막이 포함되지 않습니다. 반복을 만들 때 선택적 매개 변수speakerCount
,subtitleMaxCharCountPerSegment
,exportSubtitleInVideo
를 이미 지정한 경우 번역을 생성할 때 다시 지정할 필요가 없습니다. 값은 변환 설정에서 상속됩니다. 반복을 만들 때 이러한 매개 변수가 정의되면 새 값이 원래 설정을 재정의합니다. - 필요에 따라 원래 비디오에 대한 자막이 있는 WebVTT 파일을 지정할 수 있습니다.
webvttFile
첫 번째 반복을 만들 때는 입력 매개 변수가 필요하지 않습니다. 그러나 두 번째 반복부터 반복 프로세스에서 매개 변수를webvttFile
지정해야 합니다.
인증 및 권한 부여의 경우 요청에 다음 헤더 및 경로 ID를 포함해야 합니다.
-
Operation-Id
헤더 설정:Operation-Id
각 반복 만들기와 같이 각 작업에 대해 고유해야 합니다.Your-Operation-Id
를 이 작업의 고유 ID로 바꾸십시오. - 경로에서
Your-Translation-Id
을(를) 교체하십시오. 번역을 만들 때 지정한 것과 동일한 번역 ID를 사용합니다. 번역 ID는 변경되지 않은 상태로 유지됩니다. - 경로에 새
iterationId
값을 지정합니다. 반복 ID는 각 작업에 대해 고유해야 합니다.Your-Iteration-Id-1
를 선택한 반복 ID로 교체하십시오. -
YourSpeechResourceKey
를 음성 리소스 키로 바꾸고,YourSpeechResourceRegion
을 음성 리소스 지역으로 바꿉니다.
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" \
-H "Operation-Id: Your-Operation-Id" \
-H "Content-Type: application/json" \
-d '{
"input": {
"subtitleMaxCharCountPerSegment": 30,
"exportSubtitleInVideo": true
}
}' "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id/iterations/Your-Iteration-Id-1?api-version=2024-05-20"
응답 본문은 다음 형식으로 표시되어야 합니다.
{
"input": {
"subtitleMaxCharCountPerSegment": 30,
"exportSubtitleInVideo": true
},
"status": "NotStarted",
"lastActionDateTime": "2025-03-06T19:15:38.722Z",
"id": "Your-Iteration-Id",
"createdDateTime": "2025-03-06T19:15:38.722Z"
}
지정한 작업 ID를 사용하여 작업 ID로 작업을 가져오는 API를 주기적으로 사용하고, 반환된 상태가 Succeeded
또는 Failed
가 될 때까지 계속 진행할 수 있습니다. 이 작업을 사용하면 반복 프로세스 만들기의 진행률을 모니터링할 수 있습니다. 상태 속성은 NotStarted
에서 Running
로 진행하고, 마지막으로 Succeeded
또는 Failed
로 진행되어야 합니다.
3단계: 번역된 비디오 및 자막 다운로드
반복 상태가 되면 번역된 비디오 및 자막을 다운로드할 수 있습니다 Succeeded
. 번역된 비디오 및 자막은 반복 ID API별 반복 가져오기 의 응답 본문에서 사용할 수 있습니다.
ID로 특정 반복의 세부 정보를 검색하려면 HTTP GET 요청을 사용합니다.
YourSpeechResourceKey
를 Speech 리소스 키로, YourSpeechResourceRegion
를 Speech 리소스 영역으로, 확인하려는 번역 ID는 Your-Translation-Id
로, 확인하려는 반복 ID는 Your-Iteration-Id
로 바꾸십시오.
curl -v -X GET -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id/iterations/Your-Iteration-Id?api-version=2024-05-20"
응답 본문은 다음 형식으로 표시되어야 합니다.
{
"input": {
"speakerCount": 1,
"subtitleMaxCharCountPerSegment": 30,
"exportSubtitleInVideo": true
},
"result": {
"translatedVideoFileUrl": "https://cvoiceprodeus.blob.core.windows.net/YourTranslatedVideoFileUrl",
"sourceLocaleSubtitleWebvttFileUrl": "https://cvoiceprodeus.blob.core.windows.net/YourSourceLocaleSubtitleWebvttFileUrl",
"targetLocaleSubtitleWebvttFileUrl": "https://cvoiceprodeus.blob.core.windows.net/YourTargetLocaleSubtitleWebvttFileUrl",
"metadataJsonWebvttFileUrl": "https://cvoiceprodeus.blob.core.windows.net/YourMetadataJsonWebvttFileUrl",
},
"status": "Succeeded",
"lastActionDateTime": "2025-03-06T19:17:06.270Z",
"id": "Your-Iteration-Id-7",
"createdDateTime": "2025-03-06T19:15:38.723Z"
}
결과 URL에서 다운로드
응답 본문에는 번역된 비디오 및 자막을 다운로드하기 위한 다음 URL이 포함되어 있습니다.
-
translatedVideoFileUrl
: 번역된 비디오 파일의 URL입니다. 이 URL에서 번역된 비디오를 다운로드할 수 있습니다. -
sourceLocaleSubtitleWebvttFileUrl
: 원본 로캘에 대한 WebVTT 파일의 URL입니다. 이 URL에서 WebVTT 파일을 다운로드할 수 있습니다. -
targetLocaleSubtitleWebvttFileUrl
: 대상 로캘에 대한 WebVTT 파일의 URL입니다. 이 URL에서 WebVTT 파일을 다운로드할 수 있습니다. -
metadataJsonWebvttFileUrl
: 메타데이터 JSON WebVTT 파일의 URL입니다. 이 URL에서 메타데이터 JSON WebVTT 파일을 다운로드할 수 있습니다.
다음은 자막 파일 형식의 예입니다.
소스 로케일 자막 웹브이티티 파일 URL
WEBVTT
00:00:00.320 --> 00:00:03.880
Microsoft ha estado 25 años comprometido con El Salvador.
00:00:03.960 --> 00:00:08.440
Microsoft es hablar de innovación y es hablar del presente y futuro del Salvador.
00:00:09.080 --> 00:00:15.840
Son 25 años y contando los que como marca Microsoft ha logrado cumplir con cada 1 de sus objetivos en El País.
00:00:16.040 --> 00:00:23.400
Nos apoyamos muchísimo en su liderazgo, en su tecnología de punta y en su innovación continua.
00:00:23.800 --> 00:00:29.760
Microsoft le permite a Nico ser parte de un ecosistema tecnológico a nivel mundial más que un aliado para nosotros,
00:00:29.760 --> 00:00:33.880
más que un socio, realmente es un amigo, un amigo estratégico,
00:00:34.840 --> 00:00:39.800
incondicional, teniendo en cuenta y como principal razón de ser nuestra misión y visión,
00:00:40.080 --> 00:00:45.400
permitiendo que los salvadoreños puedan percatarse de su potencial. 25 años de experiencia.
00:00:45.680 --> 00:00:50.480
25 años impulsando, innovando y mejorando en cada una de nuestras facetas.
00:00:50.880 --> 00:00:58.080
Nuestra misión sigue intacta, empoderar a todas las personas y organizaciones del planeta a lograr más felices.
00:00:58.080 --> 00:01:01.240
25, Microsoft felices. 25, El Salvador.
00:01:01.480 --> 00:01:05.920
Juntos seguiremos innovando y progresando un mejor bienestar con tecnología.
JSON 속성이 있는 WebVTT
JSON 속성이 있는 WebVTT 파일에는 번역 프로세스에 대한 메타데이터가 포함되어 있습니다. 각 자막 세그먼트에는 번역에 대한 추가 정보를 제공하는 속성이 포함되어 있습니다. 속성에 대한 분석은 다음과 같습니다.
-
globalMetadata
: 이 섹션에는 비디오의 스피커에 대한 메타데이터가 포함되어 있습니다. "speaker" 속성은 각 스피커에 대한 정보를 포함하는 개체입니다. 각 화자는 고유한 ID(예: "Speaker0")로 식별됩니다. "defaultSsmlProperties" 속성에는 스피커의 음성에 대한 기본 SSML 속성이 포함되어 있습니다. -
id
: 각 자막 세그먼트에 대한 고유 식별자입니다. WebVTT 파일에서 텍스트의 특정 세그먼트를 식별하는 데 도움이 됩니다. -
speakerId
: 이 속성은 해당 자막 세그먼트에 대한 스피커의 ID를 나타냅니다. "globalMetadata" 섹션에 정의된 화자 ID와 일치해야 합니다. -
ssmlProperties
: 이 섹션에는 화자의 음성과 관련된 속성이 포함되어 있습니다. "voiceName" 및 "voiceKind"와 같은 속성을 포함할 수 있습니다. "voiceName"은 합성에 사용되는 음성의 이름이며, "voiceKind"는 플랫폼 음성인지 개인 음성인지를 나타냅니다. -
sourceLocaleText
: 이 속성은 원본 언어의 원래 텍스트를 포함합니다. 업데이트된sourceLocaleText
만 변경하는 경우, 시스템이sourceLocaleText
을 번역하고, 새 번역을 합성에 사용합니다.sourceLocaleText
및translatedText
를 둘 다 변경하면, 시스템은sourceLocaleText
에 대한 변경을 무시하고 합성에 대해 업데이트된translatedText
을 사용합니다. -
translatedText
: 이 속성은 대상 언어로 번역된 텍스트를 포함합니다. 번역된 비디오에서 합성할 텍스트를 나타냅니다.translatedText
만 변경하면 시스템은 업데이트된 translatedText를 합성에 사용합니다.
4단계: 추가 반복 만들기(선택 사항)
번역 품질을 개선하기 위해 추가 반복을 만들 수 있습니다. 이 프로세스는 첫 번째 반복을 만드는 것과 비슷합니다.
첫 번째 반복을 만들 때는 webvttFile
매개 변수가 필요하지 않습니다. 그러나 두 번째 반복부터 반복 프로세스에서 매개 변수를 webvttFile
지정해야 합니다. webvtt 파일을 다운로드하고, 필요한 편집을 한 다음, Azure Blob Storage에 업로드해야 합니다. Blob URL을 지정해야 합니다.
비디오 번역을 시작하거나 기존 번역에 대한 반복을 업데이트하려면 다음 지침에 따라 HTTP PUT 요청 경로 및 본문을 생성해야 합니다.
- 필요한 입력 매개 변수를 지정합니다
webvttFile
. 매개 변수는webvttFile
두 번째 반복부터 시작해야 합니다. 가장 최근의 webvtt 파일을 다운로드하고 원하는 편집을 한 다음 Azure Blob Storage에 업로드해야 합니다. Blob URL을 지정해야 합니다. 자막 파일은 WebVTT 또는 JSON 형식일 수 있습니다. - 필요에 따라 새 반복에 대한 새 설정(예:
speakerCount
,subtitleMaxCharCountPerSegment
및exportSubtitleInVideo
)을 지정할 수 있습니다.
인증 및 권한 부여의 경우 요청에 다음 헤더 및 경로 ID를 포함해야 합니다.
-
Operation-Id
헤더 설정:Operation-Id
각 반복 만들기와 같이 각 작업에 대해 고유해야 합니다.Your-Operation-Id
를 이 작업의 고유 ID로 바꾸십시오. - 경로에서
Your-Translation-Id
을(를) 교체하십시오. 번역을 만들 때 지정한 것과 동일한 번역 ID를 사용합니다. 번역 ID는 변경되지 않은 상태로 유지됩니다. - 경로에 새
iterationId
값을 지정합니다. 반복 ID는 각 작업에 대해 고유해야 합니다.Your-Iteration-Id-2
를 선택한 반복 ID로 교체하십시오. -
YourSpeechResourceKey
를 음성 리소스 키로 바꾸고,YourSpeechResourceRegion
을 음성 리소스 지역으로 바꿉니다.
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" \
-H "Operation-Id: Your-Operation-Id" \
-H "Content-Type: application/json" \
-d '{
"input": {
"webvttFile": {
"url": "https://YourBlobStorageUrl/YourWebVTTFile.vtt"
}
}
}' "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id/iterations/Your-Iteration-Id-2?api-version=2024-05-20"
응답 본문은 다음 형식으로 표시되어야 합니다.
{
"input": {
"webvttFile": {
"url": "https://YourBlobStorageUrl/YourWebVTTFile.vtt"
}
},
"status": "NotStarted",
"lastActionDateTime": "2025-03-06T19:15:38.722Z",
"id": "Your-Iteration-Id-2",
"createdDateTime": "2025-03-06T19:15:38.722Z"
}
지정한 작업 ID를 사용하여 작업 ID로 작업을 가져오는 API를 주기적으로 사용하고, 반환된 상태가 Succeeded
또는 Failed
가 될 때까지 계속 진행할 수 있습니다. 이 작업을 사용하면 반복 프로세스 만들기의 진행률을 모니터링할 수 있습니다. 상태 속성은 NotStarted
에서 Running
로 진행하고, 마지막으로 Succeeded
또는 Failed
로 진행되어야 합니다.
작업 ID로 작업 가져오기
작업 ID를 사용하여 작업의 상태를 확인합니다. 작업 ID는 각 작업에 대해 고유하므로 각 작업을 개별적으로 추적할 수 있습니다. 작업 ID는 번역이 삭제될 때까지 유효합니다.
- 번역을 만들 때 사용한 것과 동일하게
Operation-Id
지정합니다. 이 예제에서는Your-Operation-Id-1
사용됩니다. 선택한 작업 ID로 대체Your-Operation-Id-1
합니다. -
YourSpeechResourceKey
를 음성 리소스 키로 바꾸고,YourSpeechResourceRegion
을 음성 리소스 지역으로 바꿉니다.
curl -v -X GET -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/operations/Your-Operation-Id-1?api-version=2024-05-20"
응답 본문은 다음 형식으로 표시되어야 합니다.
{
"id": "Your-Operation-Id-1",
"status": "Running"
}
번역 ID로 번역 삭제
로 식별되는 특정 번역을 translationId
제거합니다. 또한 이 작업은 이 변환과 관련된 모든 반복을 제거합니다.
Speech 리소스 키를 YourSpeechResourceKey
로, Speech 리소스 지역을 YourSpeechResourceRegion
로, 삭제하려는 번역 ID를 Your-Translation-Id
로 바꾸세요. 수동으로 삭제하지 않으면 서비스는 최대 31일 동안 번역 기록을 유지합니다.
curl -v -X DELETE -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id?api-version=2024-05-20"
삭제 요청이 성공한 경우 응답 헤더에 HTTP/1.1 204 No Content
가 포함됩니다.
REST API 작업
비디오 번역에 다음 REST API 작업을 사용할 수 있습니다.
작전 | 메서드 | REST API 호출 |
---|---|---|
번역 만들기 | PUT |
/translations/{translationId} |
번역 나열 | GET |
/translations |
번역 ID로 번역 가져오기 | GET |
/translations/{translationId} |
반복 만들기 | PUT |
/translations/{translationId}/iterations/{iterationId} |
반복 목록 표시 | GET |
/translations/{translationId}/iterations |
반복 ID로 반복 가져오기 | GET |
/translations/{translationId}/iterations/{iterationId} |
작업 ID별 작업 가져오기 | GET |
/operations/{operationId} |
번역 ID로 번역 삭제 | DELETE |
/translations/{translationId} |
코드 샘플은 GitHub를 참조하세요.
이 섹션에서는 이전에 자세히 설명하지 않은 다른 비디오 번역 API 호출에 대한 예제를 제공합니다.
번역 나열
리소스 계정에서 업로드 및 처리되는 모든 비디오 번역을 나열하려면 다음 예제와 같이 HTTP GET 요청을 만듭니다.
YourSpeechResourceKey
를 음성 리소스 키로 바꾸고, YourSpeechResourceRegion
을 음성 리소스 지역으로 바꿉니다.
curl -v -X GET -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations?api-version=2024-05-20"
번역 ID로 번역 가져오기
이 작업은 고유한 translationId
번역으로 식별되는 특정 번역에 대한 자세한 정보를 검색합니다. Speech 리소스 키를 YourSpeechResourceKey
로, Speech 리소스 지역을 YourSpeechResourceRegion
로, 확인하려는 번역 ID를 Your-Translation-Id
로 각각 바꾸세요.
curl -v -X GET -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id?api-version=2024-05-20"
반복 목록 표시
특정 번역에 대한 모든 반복을 나열합니다. 이 요청은 자세한 정보 없이 모든 반복을 나열합니다. Speech 리소스 키를 YourSpeechResourceKey
로, Speech 리소스 지역을 YourSpeechResourceRegion
로, 확인하려는 번역 ID를 Your-Translation-Id
로 각각 바꾸세요.
curl -v -X GET -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id/iterations?api-version=2024-05-20"
HTTP 상태 코드
이 섹션에서는 비디오 번역 REST API의 HTTP 응답 코드 및 메시지를 자세히 설명합니다.
HTTP 200 OK
HTTP 200 OK는 요청이 성공했음을 나타냅니다.
HTTP 204 오류
HTTP 204 오류는 요청이 성공했지만 리소스가 존재하지 않음을 나타냅니다. 예시:
- 존재하지 않는 번역을 다운로드하거나 삭제하려고 했습니다.
- 번역을 삭제했습니다.
HTTP 400 오류
다음은 400 오류가 발생할 수 있는 예입니다.
- 지정한 원본 또는 대상 로캘이 지원되는 로캘에 속하지 않습니다.
- F0 음성 리소스를 사용하려고 했지만 해당 지역은 표준 음성 리소스 가격 책정 계층만 지원합니다.
HTTP 500 오류
HTTP 500 내부 서버 오류는 요청이 실패했음을 나타냅니다. 응답 본문에는 오류 메시지가 포함되어 있습니다.