다음을 통해 공유


비디오 번역을 사용하는 방법

참고

이 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

이 문서에서는 Azure AI Foundry 포털에서 Azure AI Speech로 비디오 번역을 사용하는 방법을 알아봅니다.

팁 (조언)

API를 사용하기 전에 Azure AI Foundry 포털 에서 비디오 번역을 사용해 보세요. 비디오 번역 REST API를 사용하여 비디오 번역을 애플리케이션에 통합합니다. API에 대한 자세한 내용은 비디오 번역 REST API를 참조하세요.

필수 조건

비디오 번역 사용해 보기

비디오 번역 데모를 사용해 보려면 다음 단계를 수행합니다.

  1. Azure AI Foundry 포털에서 모델 카탈로그로 이동합니다.

  2. 카탈로그 검색 상자에서 "Azure-AI-Speech"를 입력하고 검색합니다.

    Azure AI Foundry 포털의 모델 카탈로그 스크린샷

  3. Azure-AI-Speech를 선택하면 Azure-AI-Speech 체험 페이지로 이동됩니다.

  4. 시나리오 >에 따라 음성 기능을선택합니다.

    시나리오별 Speech Service 기능 필터링 스크린샷

  5. 오른쪽의 샘플 옵션 에서 개인 또는 표준 음성을 선택합니다.

  6. 재생 단추를 선택하여 번역된 오디오를 듣습니다. 원본 비디오 탭을 선택하여 원래 오디오를 재생합니다.

    새 프로젝트 페이지에서 음성 유형을 선택하는 방법을 보여 주는 스크린샷

    음성 유형 옵션은 다음과 같습니다.

    • 표준 음성: 이 서비스는 비디오의 화자의 음성과 표준 음성을 일치시켜 가장 적합한 표준 음성을 자동으로 선택합니다.
    • 개인 음성: 비디오에서 화자의 음성과 일치하는 개인 음성을 사용합니다.

    참고

    API를 통해 개인 음성을 사용하려면 액세스를 신청해야 합니다.

동영상 번역 프로젝트 만들기

동영상 번역 프로젝트를 만들려면 다음 단계를 따릅니다.

  1. Azure AI Foundry 포털에서 모델 카탈로그로 이동합니다.

  2. 카탈로그 검색 상자에서 "Azure-AI-Speech"를 입력하고 검색합니다.

    Azure AI Foundry 포털의 모델 카탈로그 스크린샷

  3. Azure-AI-Speech를 선택하면 Azure-AI-Speech 체험 페이지로 이동됩니다.

  4. 시나리오 >에 따라 음성 기능을선택합니다.

    시나리오별 Speech Service 기능 필터링 스크린샷

  5. 내 비디오>업로드 비디오를 선택합니다.

    비디오 업로드 단추를 선택하는 스크린샷.

  6. 비디오 업로드 페이지에서 음성 유형을 선택합니다.

    새 프로젝트 페이지에서 음성 유형을 선택하는 스크린샷

    음성 유형 옵션은 다음과 같습니다.

    • 표준 음성: 이 서비스는 비디오의 화자의 음성과 표준 음성을 일치시켜 가장 적합한 표준 음성을 자동으로 선택합니다.
    • 개인 음성: 비디오에서 화자의 음성과 일치하는 개인 음성을 사용합니다.

    참고

    개인 음성을 사용하려면 액세스 권한을 신청해야 합니다.

  7. 비디오 파일을 끌어서 놓거나 파일을 수동으로 선택하여 비디오 파일을 업로드합니다. 비디오는 .mp4 형식, 5GB 미만, 4시간 미만이어야 합니다.

  8. 화자 , 비디오의 언어언어로 번역을 제공합니다.

  9. 가격 정보 및 행동 강령을 승인하려면 상자를 선택합니다.

  10. 고급 설정을 조정하려면 다음: 고급 설정을 선택합니다.

    새 프로젝트 페이지에 비디오 정보를 제공하는 스크린샷.

  11. 필요에 따라 다음 설정을 조정할 수 있습니다.

    • Lexicon 파일: 이 옵션을 사용하면 시스템에서 올바르게 인식하고 발음해야 하는 사용자 지정 단어 또는 구를 추가할 수 있습니다. Speech Studio의 오디오 콘텐츠 만들기 도구에서 어휘 파일을 만들고 여기에서 선택할 수 있습니다.
    • 자막 추가: 이 옵션을 사용하면 동영상에 자막을 추가할 수 있습니다. 자막 파일은 WebVTT 또는 JSON 형식일 수 있습니다. 샘플 VTT 파일 다운로드를 선택하여 참조에 대한 샘플 WebVTT 파일을 다운로드할 수 있습니다.

    새 프로젝트를 만드는 동안 어휘 및 자막 정보를 제공하는 스크린샷

    사용자 고유의 자막 파일을 사용하려면 자막업로드를>. 원본 자막 파일 또는 대상 자막 파일을 업로드하도록 선택할 수 있습니다.

    • 자동 자막: 원본 및 대상 언어 자막이 모두 생성됩니다.
    • 원본 언어 자막 업로드: 원본 및 대상 언어 자막을 모두 생성합니다.
    • 대상 언어 자막 업로드: 대상 언어 자막만 생성됩니다.
  12. 선택하고생성합니다.

Azure Blob Storage에 대한 업로드가 완료되면 프로젝트 탭에서 처리 상태를 확인할 수 있습니다.

프로젝트를 만든 후에는 프로젝트를 선택하여 자세한 설정을 검토하고 기본 설정에 따라 조정할 수 있습니다.

음성 설정 확인 및 조정

내 비디오를 선택하면 성공 상태라는 레이블이 지정된 비디오가 표시됩니다.

성공적으로 번역된 비디오를 선택하는 스크린샷

비디오를 선택하여 비디오 아래에있는 번역 및원본 탭을 확인합니다. 해당 탭을 선택하여 원본 및 번역된 비디오를 비교할 수 있습니다. 번역된 비디오는 자동으로 생성되며, 번역 품질을 확인하기 위해 재생할 수 있습니다.

번역된 비디오의 세부 정보를 검토하는 스크린샷

비디오의 오른쪽에서 원래 스크립트와 번역된 스크립트를 모두 볼 수 있습니다. 원래 스크립트의 각 부분을 마우스로 가리키면 원래 비디오의 해당 세그먼트로 자동으로 이동하도록 비디오가 트리거되고, 번역된 스크립트의 각 부분을 마우스로 가리키면 해당 번역된 세그먼트로 이동하도록 비디오가 트리거됩니다.

음성 설정 조정, 세그먼트 추가 또는 제거, 스크립트의 시간 프레임 변경 등 비디오를 여러 번 변경할 수 있습니다. 변경 내용을 적용하기 위해 변경 내용 적용 을 선택한 후에만 요금이 청구됩니다. 저장을 선택하여 요금 없이 진행 중인 작업을 저장할 수 있습니다.

"식별되지 않은" 음성 이름이 있는 세그먼트가 발생하는 경우 특히 화자 음성이 겹치는 경우 시스템에서 음성을 정확하게 감지할 수 없기 때문일 수 있습니다. 이러한 경우 음성 이름을 수동으로 변경하는 것이 좋습니다.

식별되지 않은 음성 이름을 가진 한 세그먼트의 스크린샷.

다른 언어로 번역

현재 번역 프로젝트를 유지하고 원본 비디오를 다른 언어로 번역할 수 있습니다.

  1. 내 비디오를 선택한 다음 비디오 번역을 위한 타일을 선택합니다.
  2. + 새 언어를 선택합니다.
  3. 표시되는 새 언어로 번역 페이지에서 새 번역 언어 및 음성 유형을 선택합니다. 비디오가 번역되면 새 프로젝트가 자동으로 만들어집니다.

이 문서에서는 Speech Studio에서 Azure AI Speech로 비디오 번역을 사용하는 방법을 알아봅니다.

필수 구성 요소

동영상 번역 프로젝트 만들기

동영상 번역 프로젝트를 만들려면 다음 단계를 따릅니다.

  1. Speech Studio에 로그인합니다.

  2. 작업할 구독 및 음성 리소스를 선택합니다.

  3. 동영상 번역을 선택합니다.

  4. 프로젝트 만들기 및 관리 페이지에서 프로젝트 만들기를 선택합니다.

  5. 새 프로젝트 페이지에서 음성 유형을 선택합니다.

    새 프로젝트 페이지에서 음성 유형을 선택하는 스크린샷

    음성 유형 옵션은 다음과 같습니다.

    • 표준 음성: 이 서비스는 비디오의 화자의 음성과 표준 음성을 일치시켜 가장 적합한 표준 음성을 자동으로 선택합니다.
    • 개인 음성: 비디오에서 화자의 음성과 일치하는 개인 음성을 사용합니다.

    참고

    개인 음성을 사용하려면 액세스 권한을 신청해야 합니다.

  6. 비디오 파일을 끌어서 놓거나 파일을 수동으로 선택하여 비디오 파일을 업로드합니다. 비디오는 .mp4 형식, 5GB 미만, 4시간 미만이어야 합니다.

  7. 프로젝트 이름, 화자 수, 비디오의 언어언어로 번역을 제공합니다.

  8. 가격 정보 및 행동 강령을 승인하려면 상자를 선택합니다.

  9. 고급 설정을 조정하려면 다음: 고급 설정을 선택합니다.

    새 프로젝트 페이지에 비디오 정보를 제공하는 스크린샷.

  10. 필요에 따라 다음 설정을 조정할 수 있습니다.

    • Lexicon 파일: 이 옵션을 사용하면 시스템에서 올바르게 인식하고 발음해야 하는 사용자 지정 단어 또는 구를 추가할 수 있습니다. Speech Studio의 오디오 콘텐츠 만들기 도구에서 어휘 파일을 만들고 여기에서 선택할 수 있습니다.
    • 자막 추가: 이 옵션을 사용하면 동영상에 자막을 추가할 수 있습니다. 자막 파일은 WebVTT 또는 JSON 형식일 수 있습니다. 샘플 VTT 파일 다운로드를 선택하여 참조에 대한 샘플 WebVTT 파일을 다운로드할 수 있습니다.

    새 프로젝트를 만드는 동안 어휘 및 자막 정보를 제공하는 스크린샷

    사용자 고유의 자막 파일을 사용하려면 자막업로드를>. 원본 자막 파일 또는 대상 자막 파일을 업로드하도록 선택할 수 있습니다.

    • 자동 자막: 원본 및 대상 언어 자막이 모두 생성됩니다.
    • 원본 언어 자막 업로드: 원본 및 대상 언어 자막을 모두 생성합니다.
    • 대상 언어 자막 업로드: 대상 언어 자막만 생성됩니다.
  11. 선택하고생성합니다.

Azure Blob Storage에 대한 업로드가 완료되면 프로젝트 탭에서 처리 상태를 확인할 수 있습니다.

프로젝트를 만든 후에는 프로젝트를 선택하여 자세한 설정을 검토하고 기본 설정에 따라 조정할 수 있습니다.

음성 설정 확인 및 조정

프로젝트 세부 정보 페이지에서 비디오 아래에 번역된 탭과 원본 탭을 볼 수 있습니다. 해당 탭을 선택하여 원본 및 번역된 비디오를 비교할 수 있습니다. 번역된 비디오는 자동으로 생성되며, 번역 품질을 확인하기 위해 재생할 수 있습니다.

비디오의 오른쪽에서 원래 스크립트와 번역된 스크립트를 모두 볼 수 있습니다. 원래 스크립트의 각 부분을 마우스로 가리키면 원래 비디오의 해당 세그먼트로 자동으로 이동하도록 비디오가 트리거되고, 번역된 스크립트의 각 부분을 마우스로 가리키면 해당 번역된 세그먼트로 이동하도록 비디오가 트리거됩니다.

필요에 따라 세그먼트를 추가하거나 제거할 수도 있습니다. 세그먼트를 추가하려는 경우 새 세그먼트 타임스탬프가 이전 및 다음 세그먼트와 겹치지 않고 세그먼트 종료 시간이 시작 시간보다 커야 합니다. 타임스탬프의 올바른 형식은 hh:mm:ss.ms입니다. 그렇지 않으면 변경 내용을 적용할 수 없습니다.

비디오 아래의 오디오 파형을 사용하여 스크립트의 시간 프레임을 직접 조정할 수 있습니다. 변경 내용 적용을 선택하면 조정이 적용됩니다.

"식별되지 않은" 음성 이름이 있는 세그먼트가 발생하는 경우 특히 화자 음성이 겹치는 경우 시스템에서 음성을 정확하게 감지할 수 없기 때문일 수 있습니다. 이러한 경우 음성 이름을 수동으로 변경하는 것이 좋습니다.

식별되지 않은 음성 이름을 가진 한 세그먼트의 스크린샷.

음성을 조정하려면 음성 설정을 선택하여 일부 내용을 변경합니다. 음성 설정 페이지에서 음성 유형, 성별 및 음성을 조정할 수 있습니다. 음성 오른쪽에 있는 음성 샘플을 선택하여 음성 선택을 결정합니다. 음성이 누락된 경우 스피커 추가를 선택하여 새 음성 이름을 추가할 수 있습니다. 설정을 변경한 후 업데이트를 선택합니다.

음성 설정 페이지에서 음성 설정을 조정하는 스크린샷

음성 설정 조정, 세그먼트 추가 또는 제거, 스크립트의 시간 프레임 변경 등 비디오를 여러 번 변경할 수 있습니다. 변경 내용을 적용하기 위해 변경 내용 적용 을 선택한 후에만 요금이 청구됩니다. 저장을 선택하여 요금 없이 진행 중인 작업을 저장할 수 있습니다.

변경 내용을 모두 변경한 후 변경 내용 적용 단추를 선택하는 스크린샷

다른 언어로 번역

현재 번역 프로젝트를 유지하고 원본 비디오를 다른 언어로 번역할 수 있습니다.

  1. 프로젝트를 엽니다.
  2. + 새 언어를 선택합니다.
  3. 표시되는 새 번역 페이지에서 새 번역된 언어 및 음성 유형을 선택합니다. 비디오가 번역되면 새 프로젝트가 자동으로 만들어집니다.

비디오 번역 REST API는 애플리케이션에 원활한 비디오 번역 통합을 용이하게 합니다. 비디오 번역 업로드, 관리 및 구체화를 지원하며, 지속적인 개선을 위해 여러 번의 반복을 지원합니다. 이 문서에서는 REST API를 통해 비디오 번역을 활용하는 방법을 알아봅니다.

필수 구성 요소

팁 (조언)

시작하기 전에 비디오 번역 개요 를 참조하여 비디오 번역의 엔드 투 엔드 프로세스를 이해합니다.

워크플로

REST API를 사용하여 번역된 비디오를 가져오는 단계는 다음과 같습니다.

  1. 번역 개체를 만듭니다. 작업 상태가 Succeeded 또는 Failed에 도달할 때까지 주기적으로 확인하세요.
  2. 번역 프로세스를 시작하는 반복을 만듭니다. 반복 작업의 상태가 Succeeded 또는 Failed에 도달할 때까지 주기적으로 확인합니다.
  3. 번역된 비디오 및 자막을 다운로드합니다.
  4. 필요에 따라 번역 품질을 개선하기 위해 추가 반복을 만듭니 다.

1단계: 번역 만들기

중요하다

이 섹션에 설명된 대로 번역을 만들면 번역 프로세스가 시작되지 않습니다. 반복을 만들어 비디오 번역을 시작할 수 있습니다. REST API를 통해 만든 번역 및 반복은 포털에 동기화되지 않으며 그 반대의 경우도 마찬가지입니다.

비디오 번역을 만들려면 다음 지침에 따라 HTTP PUT 요청 경로 및 본문을 생성해야 합니다.

  • displayName을(를) 지정하세요: 번역의 표시 이름입니다. 번역을 식별하는 데 도움이 되는 사용자 친화적인 이름입니다.

  • description을 지정합니다. 번역에 대한 간략한 설명입니다. 이는 선택 사항이지만 설명서 용도로 유용할 수 있습니다.

  • 원본 비디오의 sourceLocale언어를 지정합니다. 비디오 파일에서 사용되는 언어입니다.

  • targetLocale을(를) 지정합니다: 비디오를 번역할 언어입니다. 번역의 대상 언어입니다.

  • 지정 voiceKind: 번역에 사용할 음성의 유형입니다. PlatformVoicePersonalVoice 중에서 선택할 수 있습니다. 따라서 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을 번역하고, 새 번역을 합성에 사용합니다. sourceLocaleTexttranslatedText를 둘 다 변경하면, 시스템은 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, subtitleMaxCharCountPerSegmentexportSubtitleInVideo)을 지정할 수 있습니다.

인증 및 권한 부여의 경우 요청에 다음 헤더 및 경로 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 내부 서버 오류는 요청이 실패했음을 나타냅니다. 응답 본문에는 오류 메시지가 포함되어 있습니다.