빠른 시작: 음성 텍스트 변환을 사용하여 캡션 만들기

참조 설명서 | 패키지(NuGet) | GitHub의 추가 샘플

이 빠른 시작에서는 콘솔 앱을 실행하여 음성 텍스트 변환을 통해 캡션을 만듭니다.

Speech Studio를 사용해 보고, 샘플 비디오 클립을 선택하여 실시간 또는 오프라인으로 처리된 캡션 결과를 확인합니다.

필수 구성 요소

환경 설정

음성 SDK는 NuGet 패키지로 사용할 수 있으며 .NET Standard 2.0을 구현합니다. 이 가이드의 뒷부분에서 Speech SDK를 설치하지만, 먼저 SDK 설치 가이드에서 더 많은 요구 사항을 확인합니다.

또한 압축된 입력 오디오를 위해 GStreamer를 설치해야 합니다.

환경 변수 설정

Azure AI 서비스에 액세스하려면 애플리케이션을 인증해야 합니다. 이 문서에서는 환경 변수를 사용하여 자격 증명을 저장하는 방법을 보여 줍니다. 그런 다음, 코드에서 환경 변수에 액세스하여 애플리케이션을 인증할 수 있습니다. 프로덕션의 경우 자격 증명을 저장하고 액세스하는 더 안전한 방법을 사용하세요.

Important

클라우드에서 실행되는 애플리케이션에 자격 증명을 저장하지 않으려면 Microsoft Entra ID 인증과 함께 Azure 리소스에 대한 관리 ID를 사용하는 것이 좋습니다.

API 키를 사용하는 경우 Azure Key Vault와 같이 다른 곳에 안전하게 저장합니다. API 키를 코드에 직접 포함하지 말고, 공개적으로 게시하지 마세요.

AI 서비스 보안에 대한 자세한 내용은 Azure AI 서비스에 대한 요청 인증을 참조하세요.

Speech 리소스 키와 지역에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  • SPEECH_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  • SPEECH_REGION 환경 변수를 설정하려면 your-region를 리소스에 대한 지역 중 하나로 바꿉니다.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

참고 항목

현재 콘솔에서만 환경 변수에 액세스해야 하는 경우 환경 변수를 setx 대신 set으로 설정할 수 있습니다.

환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 Visual Studio를 사용하는 경우 Visual Studio를 다시 시작한 후 예제를 실행합니다.

음성에서 캡션 만들기

다음 단계에 따라 캡션 빠른 시작 코드 예제를 빌드하고 실행합니다.

  1. GitHub에서 scenarios/csharp/dotnetcore/captioning/ 샘플 파일을 복사합니다. Git이 설치되어 있으면 명령 프롬프트를 열고, git clone 명령을 실행하여 Speech SDK 샘플 리포지토리를 다운로드합니다.
    git clone https://github.com/Azure-Samples/cognitive-services-speech-sdk.git
    
  2. 명령 프롬프트를 열고, 프로젝트 디렉터리로 변경합니다.
    cd <your-local-path>/scenarios/csharp/dotnetcore/captioning/captioning/
    
  3. .NET CLI를 사용하여 프로젝트를 빌드합니다.
    dotnet build
    
  4. 기본 설정 명령줄 인수를 사용하여 애플리케이션을 실행합니다. 사용 가능한 옵션은 사용법 및 인수를 참조하세요. 다음은 예제입니다.
    dotnet run --input caption.this.mp4 --format any --output caption.output.txt --srt --realTime --threshold 5 --delay 0 --profanity mask --phrases "Contoso;Jessie;Rehaan"
    

    Important

    --input--output으로 지정한 경로가 유효한지 확인합니다. 그렇지 않으면 경로를 변경해야 합니다.

    에서 설명한 대로 SPEECH_KEYSPEECH_REGION 환경 변수를 설정해야 합니다. 그렇지 않은 경우 --key--region 인수를 사용하세요.

결과 확인

위의 예제에서 realTime 옵션을 사용하면 Recognizing 이벤트의 부분적인 결과가 출력에 포함됩니다. 이 예제에서는 마지막 Recognized 이벤트에만 쉼표가 포함됩니다. 쉼표는 RecognizingRecognized 이벤트 간의 유일한 차이점이 아닙니다. 자세한 내용은 부분적인 결과 가져오기를 참조하세요.

1
00:00:00,170 --> 00:00:00,380
The

2
00:00:00,380 --> 00:00:01,770
The rainbow

3
00:00:01,770 --> 00:00:02,560
The rainbow has seven

4
00:00:02,560 --> 00:00:03,820
The rainbow has seven colors

5
00:00:03,820 --> 00:00:05,050
The rainbow has seven colors red

6
00:00:05,050 --> 00:00:05,850
The rainbow has seven colors red
orange

7
00:00:05,850 --> 00:00:06,440
The rainbow has seven colors red
orange yellow

8
00:00:06,440 --> 00:00:06,730
The rainbow has seven colors red
orange yellow green

9
00:00:06,730 --> 00:00:07,160
orange, yellow, green, blue,
indigo and Violet.

--offline 옵션을 사용하면 최종 Recognized 이벤트의 결과가 안정적입니다. 부분적인 결과는 출력에 포함되지 않습니다.

1
00:00:00,170 --> 00:00:05,540
The rainbow has seven colors, red,
orange, yellow, green, blue,

2
00:00:05,540 --> 00:00:07,160
indigo and Violet.

SRT(SubRip 텍스트) 시간 범위 출력 형식은 hh:mm:ss,fff입니다. 자세한 내용은 캡션 출력 형식을 참조하세요.

사용법 및 인수

사용법: captioning --input <input file>

연결 옵션은 다음과 같습니다.

  • --key: 음성 리소스 키입니다. SPEECH_KEY 환경 변수를 재정의합니다. 환경 변수를 설정하거나(권장) --key 옵션을 사용해야 합니다.
  • --region REGION: 음성 리소스 지역입니다. SPEECH_REGION 환경 변수를 재정의합니다. 환경 변수를 설정하거나(권장) --region 옵션을 사용해야 합니다. 예제: westus, northeurope

Important

API 키를 사용하는 경우 Azure Key Vault와 같은 다른 위치에 안전하게 저장합니다. API 키를 코드에 직접 포함하지 말고, 공개적으로 게시하지 마세요.

AI 서비스 보안에 대한 자세한 내용은 Azure AI 서비스에 대한 요청 인증을 참조하세요.

입력 옵션은 다음과 같습니다.

  • --input FILE: 파일에서 오디오를 입력합니다. 기본 입력은 마이크입니다.
  • --format FORMAT: 압축된 오디오 형식을 사용합니다. --file에만 유효합니다. 유효한 값은 alaw, any, flac, mp3, mulawogg_opus입니다. 기본값은 any입니다. wav 파일을 사용하려면 형식을 지정하지 마세요. 이 옵션은 JavaScript 캡션 샘플에서 사용할 수 없습니다. MP4와 같은 압축 오디오 파일의 경우 GStreamer를 설치하고 압축된 입력 오디오를 사용하는 방법을 참조하세요.

언어 옵션은 다음과 같습니다.

  • --language LANG: 지원되는 해당 로캘 중 하나를 사용하여 언어를 지정합니다. 이 옵션은 캡션을 줄로 나눌 때 사용합니다. 기본값은 en-US여야 합니다.

인식 옵션은 다음과 같습니다.

  • --offline: 오프라인 결과를 출력합니다. --realTime를 재정의합니다. 기본 출력 모드가 오프라인입니다.
  • --realTime: 실시간 결과를 출력합니다.

실시간 출력에는 Recognizing 이벤트 결과가 포함됩니다. 기본 오프라인 출력은 Recognized 이벤트 결과만입니다. 이러한 결과는 항상 콘솔에 기록되며, 출력 파일에는 기록되지 않습니다. --quiet 옵션은 이를 재정의합니다. 자세한 내용은 음성 인식 결과 가져오기를 참조하세요.

정확도 옵션은 다음과 같습니다.

출력 옵션은 다음과 같습니다.

  • --help: 이 도움말을 표시하고 중지합니다.
  • --output FILE: 캡션을 지정된 file에 출력합니다. 이 플래그는 필수입니다.
  • --srt: 캡션을 SRT(SubRip 텍스트) 형식으로 출력합니다. 기본 형식은 WebVTT(웹 비디오 텍스트 트랙)입니다. SRT 및 WebVTT 캡션 파일 형식에 대한 자세한 내용은 캡션 출력 형식을 참조하세요.
  • --maxLineLength LENGTH: 캡션의 줄당 최대 문자 수를 LENGTH로 설정합니다. 최솟값은 20입니다. 기본값은 37입니다(중국어의 경우 30).
  • --lines LINES: 캡션의 줄 수를 LINES로 설정합니다. 최소값은 1입니다. 기본값은 2입니다.
  • --delay MILLISECONDS: 실시간 환경을 모방하기 위해 각 캡션의 표시를 지연시키는 데 걸리는 MILLISECONDS(밀리초)입니다. 이 옵션은 realTime 플래그를 사용하는 경우에만 적용됩니다. 최솟값은 0.0입니다. 기본값은 1000입니다.
  • --remainTime MILLISECONDS: 캡션이 다른 캡션으로 대체되지 않은 경우 캡션이 화면에 남아 있어야 하는 MILLISECONDS(밀리초)입니다. 최솟값은 0.0입니다. 기본값은 1000입니다.
  • --quiet: 오류를 제외하고는 콘솔 출력을 표시하지 않습니다.
  • --profanity OPTION: 유효한 값은 raw, remove, mask입니다. 자세한 내용은 욕설 필터 개념을 참조하세요.
  • --threshold NUMBER: 안정적인 부분 결과 임계값을 설정합니다. 기본값은 3입니다. 이 옵션은 realTime 플래그를 사용하는 경우에만 적용됩니다. 자세한 내용은 부분적인 결과 가져오기 개념을 참조하세요.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

참조 설명서 | 패키지(NuGet) | GitHub의 추가 샘플

이 빠른 시작에서는 콘솔 앱을 실행하여 음성 텍스트 변환을 통해 캡션을 만듭니다.

Speech Studio를 사용해 보고, 샘플 비디오 클립을 선택하여 실시간 또는 오프라인으로 처리된 캡션 결과를 확인합니다.

필수 구성 요소

환경 설정

음성 SDK는 NuGet 패키지로 사용할 수 있으며 .NET Standard 2.0을 구현합니다. 이 가이드의 뒷부분에서 Speech SDK를 설치하지만, 먼저 SDK 설치 가이드에서 더 많은 요구 사항을 확인합니다.

또한 압축된 입력 오디오를 위해 GStreamer를 설치해야 합니다.

환경 변수 설정

Azure AI 서비스에 액세스하려면 애플리케이션을 인증해야 합니다. 이 문서에서는 환경 변수를 사용하여 자격 증명을 저장하는 방법을 보여 줍니다. 그런 다음, 코드에서 환경 변수에 액세스하여 애플리케이션을 인증할 수 있습니다. 프로덕션의 경우 자격 증명을 저장하고 액세스하는 더 안전한 방법을 사용하세요.

Important

클라우드에서 실행되는 애플리케이션에 자격 증명을 저장하지 않으려면 Microsoft Entra ID 인증과 함께 Azure 리소스에 대한 관리 ID를 사용하는 것이 좋습니다.

API 키를 사용하는 경우 Azure Key Vault와 같이 다른 곳에 안전하게 저장합니다. API 키를 코드에 직접 포함하지 말고, 공개적으로 게시하지 마세요.

AI 서비스 보안에 대한 자세한 내용은 Azure AI 서비스에 대한 요청 인증을 참조하세요.

Speech 리소스 키와 지역에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  • SPEECH_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  • SPEECH_REGION 환경 변수를 설정하려면 your-region를 리소스에 대한 지역 중 하나로 바꿉니다.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

참고 항목

현재 콘솔에서만 환경 변수에 액세스해야 하는 경우 환경 변수를 setx 대신 set으로 설정할 수 있습니다.

환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 Visual Studio를 사용하는 경우 Visual Studio를 다시 시작한 후 예제를 실행합니다.

음성에서 캡션 만들기

다음 단계에 따라 Windows에서 Visual Studio Community 2022를 사용하여 캡션 빠른 시작 코드 예제를 빌드하고 실행합니다.

  1. GitHub의 scenarios/cpp/windows/captioning/ 샘플 파일을 다운로드하거나 로컬 디렉터리에 복사합니다.

  2. Visual Studio Community 2022에서 captioning.sln 솔루션 파일을 엽니다.

  3. NuGet 패키지 관리자를 사용하여 Speech SDK를 프로젝트에 설치합니다.

    Install-Package Microsoft.CognitiveServices.Speech
    
  4. 프로젝트>속성>일반을 엽니다. 구성All configurations으로 설정합니다. C++ 언어 표준ISO C++17 Standard (/std:c++17)로 설정합니다.

  5. 빌드>구성 관리자를 엽니다.

    • 64비트 Windows 설치에서 활성 솔루션 플랫폼x64로 설정합니다.
    • 32비트 Windows 설치에서 활성 솔루션 플랫폼x86으로 설정합니다.
  6. 프로젝트>속성>디버깅을 엽니다. 명령 인수에 기본 명령줄 인수를 입력합니다. 사용 가능한 옵션은 사용법 및 인수를 참조하세요. 예를 들어 다음과 같습니다.

    --input caption.this.mp4 --format any --output caption.output.txt --srt --realTime --threshold 5 --delay 0 --profanity mask --phrases "Contoso;Jessie;Rehaan"
    

    Important

    --input--output으로 지정한 경로가 유효한지 확인합니다. 그렇지 않으면 경로를 변경해야 합니다.

    에서 설명한 대로 SPEECH_KEYSPEECH_REGION 환경 변수를 설정해야 합니다. 그렇지 않은 경우 --key--region 인수를 사용하세요.

  7. 콘솔 애플리케이션을 작성하고 실행합니다.

결과 확인

위의 예제에서 realTime 옵션을 사용하면 Recognizing 이벤트의 부분적인 결과가 출력에 포함됩니다. 이 예제에서는 마지막 Recognized 이벤트에만 쉼표가 포함됩니다. 쉼표는 RecognizingRecognized 이벤트 간의 유일한 차이점이 아닙니다. 자세한 내용은 부분적인 결과 가져오기를 참조하세요.

1
00:00:00,170 --> 00:00:00,380
The

2
00:00:00,380 --> 00:00:01,770
The rainbow

3
00:00:01,770 --> 00:00:02,560
The rainbow has seven

4
00:00:02,560 --> 00:00:03,820
The rainbow has seven colors

5
00:00:03,820 --> 00:00:05,050
The rainbow has seven colors red

6
00:00:05,050 --> 00:00:05,850
The rainbow has seven colors red
orange

7
00:00:05,850 --> 00:00:06,440
The rainbow has seven colors red
orange yellow

8
00:00:06,440 --> 00:00:06,730
The rainbow has seven colors red
orange yellow green

9
00:00:06,730 --> 00:00:07,160
orange, yellow, green, blue,
indigo and Violet.

--offline 옵션을 사용하면 최종 Recognized 이벤트의 결과가 안정적입니다. 부분적인 결과는 출력에 포함되지 않습니다.

1
00:00:00,170 --> 00:00:05,540
The rainbow has seven colors, red,
orange, yellow, green, blue,

2
00:00:05,540 --> 00:00:07,160
indigo and Violet.

SRT(SubRip 텍스트) 시간 범위 출력 형식은 hh:mm:ss,fff입니다. 자세한 내용은 캡션 출력 형식을 참조하세요.

사용법 및 인수

사용법: captioning --input <input file>

연결 옵션은 다음과 같습니다.

  • --key: 음성 리소스 키입니다. SPEECH_KEY 환경 변수를 재정의합니다. 환경 변수를 설정하거나(권장) --key 옵션을 사용해야 합니다.
  • --region REGION: 음성 리소스 지역입니다. SPEECH_REGION 환경 변수를 재정의합니다. 환경 변수를 설정하거나(권장) --region 옵션을 사용해야 합니다. 예제: westus, northeurope

Important

API 키를 사용하는 경우 Azure Key Vault와 같은 다른 위치에 안전하게 저장합니다. API 키를 코드에 직접 포함하지 말고, 공개적으로 게시하지 마세요.

AI 서비스 보안에 대한 자세한 내용은 Azure AI 서비스에 대한 요청 인증을 참조하세요.

입력 옵션은 다음과 같습니다.

  • --input FILE: 파일에서 오디오를 입력합니다. 기본 입력은 마이크입니다.
  • --format FORMAT: 압축된 오디오 형식을 사용합니다. --file에만 유효합니다. 유효한 값은 alaw, any, flac, mp3, mulawogg_opus입니다. 기본값은 any입니다. wav 파일을 사용하려면 형식을 지정하지 마세요. 이 옵션은 JavaScript 캡션 샘플에서 사용할 수 없습니다. MP4와 같은 압축 오디오 파일의 경우 GStreamer를 설치하고 압축된 입력 오디오를 사용하는 방법을 참조하세요.

언어 옵션은 다음과 같습니다.

  • --language LANG: 지원되는 해당 로캘 중 하나를 사용하여 언어를 지정합니다. 이 옵션은 캡션을 줄로 나눌 때 사용합니다. 기본값은 en-US여야 합니다.

인식 옵션은 다음과 같습니다.

  • --offline: 오프라인 결과를 출력합니다. --realTime를 재정의합니다. 기본 출력 모드가 오프라인입니다.
  • --realTime: 실시간 결과를 출력합니다.

실시간 출력에는 Recognizing 이벤트 결과가 포함됩니다. 기본 오프라인 출력은 Recognized 이벤트 결과만입니다. 이러한 결과는 항상 콘솔에 기록되며, 출력 파일에는 기록되지 않습니다. --quiet 옵션은 이를 재정의합니다. 자세한 내용은 음성 인식 결과 가져오기를 참조하세요.

정확도 옵션은 다음과 같습니다.

출력 옵션은 다음과 같습니다.

  • --help: 이 도움말을 표시하고 중지합니다.
  • --output FILE: 캡션을 지정된 file에 출력합니다. 이 플래그는 필수입니다.
  • --srt: 캡션을 SRT(SubRip 텍스트) 형식으로 출력합니다. 기본 형식은 WebVTT(웹 비디오 텍스트 트랙)입니다. SRT 및 WebVTT 캡션 파일 형식에 대한 자세한 내용은 캡션 출력 형식을 참조하세요.
  • --maxLineLength LENGTH: 캡션의 줄당 최대 문자 수를 LENGTH로 설정합니다. 최솟값은 20입니다. 기본값은 37입니다(중국어의 경우 30).
  • --lines LINES: 캡션의 줄 수를 LINES로 설정합니다. 최소값은 1입니다. 기본값은 2입니다.
  • --delay MILLISECONDS: 실시간 환경을 모방하기 위해 각 캡션의 표시를 지연시키는 데 걸리는 MILLISECONDS(밀리초)입니다. 이 옵션은 realTime 플래그를 사용하는 경우에만 적용됩니다. 최솟값은 0.0입니다. 기본값은 1000입니다.
  • --remainTime MILLISECONDS: 캡션이 다른 캡션으로 대체되지 않은 경우 캡션이 화면에 남아 있어야 하는 MILLISECONDS(밀리초)입니다. 최솟값은 0.0입니다. 기본값은 1000입니다.
  • --quiet: 오류를 제외하고는 콘솔 출력을 표시하지 않습니다.
  • --profanity OPTION: 유효한 값은 raw, remove, mask입니다. 자세한 내용은 욕설 필터 개념을 참조하세요.
  • --threshold NUMBER: 안정적인 부분 결과 임계값을 설정합니다. 기본값은 3입니다. 이 옵션은 realTime 플래그를 사용하는 경우에만 적용됩니다. 자세한 내용은 부분적인 결과 가져오기 개념을 참조하세요.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

참조 설명서 | 패키지(Go) | GitHub의 추가 샘플

이 빠른 시작에서는 콘솔 앱을 실행하여 음성 텍스트 변환을 통해 캡션을 만듭니다.

Speech Studio를 사용해 보고, 샘플 비디오 클립을 선택하여 실시간 또는 오프라인으로 처리된 캡션 결과를 확인합니다.

필수 구성 요소

환경 설정

플랫폼별 설치 단계가 있는지 확인합니다.

또한 압축된 입력 오디오를 위해 GStreamer를 설치해야 합니다.

음성에서 캡션 만들기

다음 단계에 따라 캡션 빠른 시작 코드 예제를 빌드하고 실행합니다.

  1. GitHub의 scenarios/go/captioning/ 샘플 파일을 다운로드하거나 로컬 디렉터리에 복사합니다.

  2. captioning.go와 동일한 디렉터리에서 명령 프롬프트를 엽니다.

  3. 다음 명령을 실행하여 GitHub에서 호스트되는 Speech SDK 구성 요소에 연결되는 go.mod 파일을 만듭니다.

    go mod init captioning
    go get github.com/Microsoft/cognitive-services-speech-sdk-go
    
  4. GO 모듈을 빌드합니다.

    go build
    
  5. 기본 설정 명령줄 인수를 사용하여 애플리케이션을 실행합니다. 사용 가능한 옵션은 사용법 및 인수를 참조하세요. 예를 들어 다음과 같습니다.

    go run captioning --key YourSubscriptionKey --region YourServiceRegion --input caption.this.mp4 --format any --output caption.output.txt --srt --recognizing --threshold 5 --profanity mask --phrases "Contoso;Jessie;Rehaan"
    

    YourSubscriptionKey를 음성 리소스 키로 바꾸고, YourServiceRegion을 음성 리소스 지역(예: westus 또는 northeurope)으로 바꿉니다. --input--output으로 지정한 경로가 유효한지 확인합니다. 그렇지 않으면 경로를 변경해야 합니다.

    Important

    완료되면 코드에서 키를 제거하고 공개적으로 게시하지 마세요. 프로덕션의 경우 Azure Key Vault와 같은 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 Azure AI 서비스 보안 문서를 참조하세요.

결과 확인

전체 캡션이 있는 출력 파일은 caption.output.txt에 기록됩니다. 중간 결과가 콘솔에 표시됩니다.

00:00:00,180 --> 00:00:01,600
Welcome to

00:00:00,180 --> 00:00:01,820
Welcome to applied

00:00:00,180 --> 00:00:02,420
Welcome to applied mathematics

00:00:00,180 --> 00:00:02,930
Welcome to applied mathematics course

00:00:00,180 --> 00:00:03,100
Welcome to applied Mathematics course 2

00:00:00,180 --> 00:00:03,230
Welcome to applied Mathematics course 201.

SRT(SubRip 텍스트) 시간 범위 출력 형식은 hh:mm:ss,fff입니다. 자세한 내용은 캡션 출력 형식을 참조하세요.

사용법 및 인수

사용법: go run captioning.go helper.go --key <key> --region <region> --input <input file>

연결 옵션은 다음과 같습니다.

  • --key: 음성 리소스 키입니다.
  • --region REGION: 음성 리소스 지역입니다. 예제: westus, northeurope

입력 옵션은 다음과 같습니다.

  • --input FILE: 파일에서 오디오를 입력합니다. 기본 입력은 마이크입니다.
  • --format FORMAT: 압축된 오디오 형식을 사용합니다. --file에만 유효합니다. 유효한 값은 alaw, any, flac, mp3, mulawogg_opus입니다. 기본값은 any입니다. wav 파일을 사용하려면 형식을 지정하지 마세요. 이 옵션은 JavaScript 캡션 샘플에서 사용할 수 없습니다. MP4와 같은 압축 오디오 파일의 경우 GStreamer를 설치하고 압축된 입력 오디오를 사용하는 방법을 참조하세요.

언어 옵션은 다음과 같습니다.

  • --languages LANG1,LANG2: 언어 식별을 지정된 언어에 사용하도록 설정합니다. 예: en-US,ja-JP 이 옵션은 C++, C# 및 Python 캡션 샘플에서만 사용할 수 있습니다. 자세한 내용은 언어 식별을 참조하세요.

인식 옵션은 다음과 같습니다.

  • --recognizing: Recognizing 이벤트 결과를 출력합니다. 기본 출력은 Recognized 이벤트 결과만입니다. 이러한 결과는 항상 콘솔에 기록되며, 출력 파일에는 기록되지 않습니다. --quiet 옵션은 이를 재정의합니다. 자세한 내용은 음성 인식 결과 가져오기를 참조하세요.

정확도 옵션은 다음과 같습니다.

출력 옵션은 다음과 같습니다.

  • --help: 이 도움말을 표시하고 중지합니다.
  • --output FILE: 캡션을 지정된 file에 출력합니다. 이 플래그는 필수입니다.
  • --srt: 캡션을 SRT(SubRip 텍스트) 형식으로 출력합니다. 기본 형식은 WebVTT(웹 비디오 텍스트 트랙)입니다. SRT 및 WebVTT 캡션 파일 형식에 대한 자세한 내용은 캡션 출력 형식을 참조하세요.
  • --quiet: 오류를 제외하고는 콘솔 출력을 표시하지 않습니다.
  • --profanity OPTION: 유효한 값은 raw, remove, mask입니다. 자세한 내용은 욕설 필터 개념을 참조하세요.
  • --threshold NUMBER: 안정적인 부분 결과 임계값을 설정합니다. 기본값은 3입니다. 자세한 내용은 부분적인 결과 가져오기 개념을 참조하세요.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

참조 설명서 | GitHub의 추가 샘플

이 빠른 시작에서는 콘솔 앱을 실행하여 음성 텍스트 변환을 통해 캡션을 만듭니다.

Speech Studio를 사용해 보고, 샘플 비디오 클립을 선택하여 실시간 또는 오프라인으로 처리된 캡션 결과를 확인합니다.

필수 구성 요소

환경 설정

작업을 수행하려면 먼저 Speech SDK를 설치해야 합니다. 이 빠른 시작의 샘플은 Microsoft Build of OpenJDK 17에서 작동합니다.

  1. Apache Maven을 설치합니다. 그런 다음 mvn -v을(를) 실행하여 성공적인 설치를 확인합니다.
  2. pom.xml 파일을 프로젝트의 루트에 만들고, 다음을 이 파일에 복사합니다.
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.microsoft.cognitiveservices.speech.samples</groupId>
        <artifactId>quickstart-eclipse</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <build>
            <sourceDirectory>src</sourceDirectory>
            <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                <source>1.8</source>
                <target>1.8</target>
                </configuration>
            </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
            <groupId>com.microsoft.cognitiveservices.speech</groupId>
            <artifactId>client-sdk</artifactId>
            <version>1.40.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. Speech SDK 및 종속성을 설치합니다.
    mvn clean dependency:copy-dependencies
    
  4. 또한 압축된 입력 오디오를 위해 GStreamer를 설치해야 합니다.

환경 변수 설정

Azure AI 서비스에 액세스하려면 애플리케이션을 인증해야 합니다. 이 문서에서는 환경 변수를 사용하여 자격 증명을 저장하는 방법을 보여 줍니다. 그런 다음, 코드에서 환경 변수에 액세스하여 애플리케이션을 인증할 수 있습니다. 프로덕션의 경우 자격 증명을 저장하고 액세스하는 더 안전한 방법을 사용하세요.

Important

클라우드에서 실행되는 애플리케이션에 자격 증명을 저장하지 않으려면 Microsoft Entra ID 인증과 함께 Azure 리소스에 대한 관리 ID를 사용하는 것이 좋습니다.

API 키를 사용하는 경우 Azure Key Vault와 같이 다른 곳에 안전하게 저장합니다. API 키를 코드에 직접 포함하지 말고, 공개적으로 게시하지 마세요.

AI 서비스 보안에 대한 자세한 내용은 Azure AI 서비스에 대한 요청 인증을 참조하세요.

Speech 리소스 키와 지역에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  • SPEECH_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  • SPEECH_REGION 환경 변수를 설정하려면 your-region를 리소스에 대한 지역 중 하나로 바꿉니다.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

참고 항목

현재 콘솔에서만 환경 변수에 액세스해야 하는 경우 환경 변수를 setx 대신 set으로 설정할 수 있습니다.

환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 Visual Studio를 사용하는 경우 Visual Studio를 다시 시작한 후 예제를 실행합니다.

음성에서 캡션 만들기

다음 단계에 따라 캡션 빠른 시작 코드 예제를 빌드하고 실행합니다.

  1. GitHub의 scenarios/java/jre/captioning/ 샘플 파일을 프로젝트 디렉터리에 복사합니다. 환경 설정에서 만든 pom.xml 파일도 이 디렉터리에 있어야 합니다.
  2. 명령 프롬프트를 열고, 다음 명령을 실행하여 프로젝트 파일을 컴파일합니다.
    javac Captioning.java -cp ".;target\dependency\*" -encoding UTF-8
    
  3. 기본 설정 명령줄 인수를 사용하여 애플리케이션을 실행합니다. 사용 가능한 옵션은 사용법 및 인수를 참조하세요. 다음은 예제입니다.
    java -cp ".;target\dependency\*" Captioning --input caption.this.mp4 --format any --output caption.output.txt --srt --realTime --threshold 5 --delay 0 --profanity mask --phrases "Contoso;Jessie;Rehaan"
    

    Important

    --input--output으로 지정한 경로가 유효한지 확인합니다. 그렇지 않으면 경로를 변경해야 합니다.

    에서 설명한 대로 SPEECH_KEYSPEECH_REGION 환경 변수를 설정해야 합니다. 그렇지 않은 경우 --key--region 인수를 사용하세요.

결과 확인

위의 예제에서 realTime 옵션을 사용하면 Recognizing 이벤트의 부분적인 결과가 출력에 포함됩니다. 이 예제에서는 마지막 Recognized 이벤트에만 쉼표가 포함됩니다. 쉼표는 RecognizingRecognized 이벤트 간의 유일한 차이점이 아닙니다. 자세한 내용은 부분적인 결과 가져오기를 참조하세요.

1
00:00:00,170 --> 00:00:00,380
The

2
00:00:00,380 --> 00:00:01,770
The rainbow

3
00:00:01,770 --> 00:00:02,560
The rainbow has seven

4
00:00:02,560 --> 00:00:03,820
The rainbow has seven colors

5
00:00:03,820 --> 00:00:05,050
The rainbow has seven colors red

6
00:00:05,050 --> 00:00:05,850
The rainbow has seven colors red
orange

7
00:00:05,850 --> 00:00:06,440
The rainbow has seven colors red
orange yellow

8
00:00:06,440 --> 00:00:06,730
The rainbow has seven colors red
orange yellow green

9
00:00:06,730 --> 00:00:07,160
orange, yellow, green, blue,
indigo and Violet.

--offline 옵션을 사용하면 최종 Recognized 이벤트의 결과가 안정적입니다. 부분적인 결과는 출력에 포함되지 않습니다.

1
00:00:00,170 --> 00:00:05,540
The rainbow has seven colors, red,
orange, yellow, green, blue,

2
00:00:05,540 --> 00:00:07,160
indigo and Violet.

SRT(SubRip 텍스트) 시간 범위 출력 형식은 hh:mm:ss,fff입니다. 자세한 내용은 캡션 출력 형식을 참조하세요.

사용법 및 인수

사용법: java -cp ".;target\dependency\*" Captioning --input <input file>

연결 옵션은 다음과 같습니다.

  • --key: 음성 리소스 키입니다. SPEECH_KEY 환경 변수를 재정의합니다. 환경 변수를 설정하거나(권장) --key 옵션을 사용해야 합니다.
  • --region REGION: 음성 리소스 지역입니다. SPEECH_REGION 환경 변수를 재정의합니다. 환경 변수를 설정하거나(권장) --region 옵션을 사용해야 합니다. 예제: westus, northeurope

Important

API 키를 사용하는 경우 Azure Key Vault와 같은 다른 위치에 안전하게 저장합니다. API 키를 코드에 직접 포함하지 말고, 공개적으로 게시하지 마세요.

AI 서비스 보안에 대한 자세한 내용은 Azure AI 서비스에 대한 요청 인증을 참조하세요.

입력 옵션은 다음과 같습니다.

  • --input FILE: 파일에서 오디오를 입력합니다. 기본 입력은 마이크입니다.
  • --format FORMAT: 압축된 오디오 형식을 사용합니다. --file에만 유효합니다. 유효한 값은 alaw, any, flac, mp3, mulawogg_opus입니다. 기본값은 any입니다. wav 파일을 사용하려면 형식을 지정하지 마세요. 이 옵션은 JavaScript 캡션 샘플에서 사용할 수 없습니다. MP4와 같은 압축 오디오 파일의 경우 GStreamer를 설치하고 압축된 입력 오디오를 사용하는 방법을 참조하세요.

언어 옵션은 다음과 같습니다.

  • --language LANG: 지원되는 해당 로캘 중 하나를 사용하여 언어를 지정합니다. 이 옵션은 캡션을 줄로 나눌 때 사용합니다. 기본값은 en-US여야 합니다.

인식 옵션은 다음과 같습니다.

  • --offline: 오프라인 결과를 출력합니다. --realTime를 재정의합니다. 기본 출력 모드가 오프라인입니다.
  • --realTime: 실시간 결과를 출력합니다.

실시간 출력에는 Recognizing 이벤트 결과가 포함됩니다. 기본 오프라인 출력은 Recognized 이벤트 결과만입니다. 이러한 결과는 항상 콘솔에 기록되며, 출력 파일에는 기록되지 않습니다. --quiet 옵션은 이를 재정의합니다. 자세한 내용은 음성 인식 결과 가져오기를 참조하세요.

정확도 옵션은 다음과 같습니다.

출력 옵션은 다음과 같습니다.

  • --help: 이 도움말을 표시하고 중지합니다.
  • --output FILE: 캡션을 지정된 file에 출력합니다. 이 플래그는 필수입니다.
  • --srt: 캡션을 SRT(SubRip 텍스트) 형식으로 출력합니다. 기본 형식은 WebVTT(웹 비디오 텍스트 트랙)입니다. SRT 및 WebVTT 캡션 파일 형식에 대한 자세한 내용은 캡션 출력 형식을 참조하세요.
  • --maxLineLength LENGTH: 캡션의 줄당 최대 문자 수를 LENGTH로 설정합니다. 최솟값은 20입니다. 기본값은 37입니다(중국어의 경우 30).
  • --lines LINES: 캡션의 줄 수를 LINES로 설정합니다. 최소값은 1입니다. 기본값은 2입니다.
  • --delay MILLISECONDS: 실시간 환경을 모방하기 위해 각 캡션의 표시를 지연시키는 데 걸리는 MILLISECONDS(밀리초)입니다. 이 옵션은 realTime 플래그를 사용하는 경우에만 적용됩니다. 최솟값은 0.0입니다. 기본값은 1000입니다.
  • --remainTime MILLISECONDS: 캡션이 다른 캡션으로 대체되지 않은 경우 캡션이 화면에 남아 있어야 하는 MILLISECONDS(밀리초)입니다. 최솟값은 0.0입니다. 기본값은 1000입니다.
  • --quiet: 오류를 제외하고는 콘솔 출력을 표시하지 않습니다.
  • --profanity OPTION: 유효한 값은 raw, remove, mask입니다. 자세한 내용은 욕설 필터 개념을 참조하세요.
  • --threshold NUMBER: 안정적인 부분 결과 임계값을 설정합니다. 기본값은 3입니다. 이 옵션은 realTime 플래그를 사용하는 경우에만 적용됩니다. 자세한 내용은 부분적인 결과 가져오기 개념을 참조하세요.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

참조 설명서 | 패키지(npm) | GitHub의 추가 샘플 | 라이브러리 소스 코드

이 빠른 시작에서는 콘솔 앱을 실행하여 음성 텍스트 변환을 통해 캡션을 만듭니다.

Speech Studio를 사용해 보고, 샘플 비디오 클립을 선택하여 실시간 또는 오프라인으로 처리된 캡션 결과를 확인합니다.

필수 구성 요소

환경 설정

작업을 수행하려면 먼저 JavaScript용 Speech SDK를 설치해야 합니다. 설치할 패키지 이름만 알고 싶으면 npm install microsoft-cognitiveservices-speech-sdk를 실행합니다. 단계별 설치 지침은 SDK 설치 가이드를 참조하세요.

음성에서 캡션 만들기

다음 단계에 따라 캡션 빠른 시작 코드 예제를 빌드하고 실행합니다.

  1. GitHub의 scenarios/javascript/node/captioning/ 샘플 파일을 프로젝트 디렉터리에 복사합니다.

  2. Captioning.js와 동일한 디렉터리에서 명령 프롬프트를 엽니다.

  3. JavaScript용 Speech SDK를 설치합니다.

    npm install microsoft-cognitiveservices-speech-sdk
    
  4. 기본 설정 명령줄 인수를 사용하여 애플리케이션을 실행합니다. 사용 가능한 옵션은 사용법 및 인수를 참조하세요. 예를 들어 다음과 같습니다.

    node captioning.js --key YourSubscriptionKey --region YourServiceRegion --input caption.this.wav --output caption.output.txt --srt --recognizing --threshold 5 --profanity mask --phrases "Contoso;Jessie;Rehaan"
    

    YourSubscriptionKey를 음성 리소스 키로 바꾸고, YourServiceRegion을 음성 리소스 지역(예: westus 또는 northeurope)으로 바꿉니다. --input--output으로 지정한 경로가 유효한지 확인합니다. 그렇지 않으면 경로를 변경해야 합니다.

    참고 항목

    JavaScript용 Speech SDK는 압축된 입력 오디오를 지원하지 않습니다. 예제와 같이 WAV 파일을 사용해야 합니다.

    Important

    완료되면 코드에서 키를 제거하고 공개적으로 게시하지 마세요. 프로덕션의 경우 Azure Key Vault와 같은 자격 증명을 안전하게 저장하고 액세스하는 방법을 사용합니다. 자세한 내용은 Azure AI 서비스 보안 문서를 참조하세요.

결과 확인

전체 캡션이 있는 출력 파일은 caption.output.txt에 기록됩니다. 중간 결과가 콘솔에 표시됩니다.

00:00:00,180 --> 00:00:01,600
Welcome to

00:00:00,180 --> 00:00:01,820
Welcome to applied

00:00:00,180 --> 00:00:02,420
Welcome to applied mathematics

00:00:00,180 --> 00:00:02,930
Welcome to applied mathematics course

00:00:00,180 --> 00:00:03,100
Welcome to applied Mathematics course 2

00:00:00,180 --> 00:00:03,230
Welcome to applied Mathematics course 201.

SRT(SubRip 텍스트) 시간 범위 출력 형식은 hh:mm:ss,fff입니다. 자세한 내용은 캡션 출력 형식을 참조하세요.

사용법 및 인수

사용법: node captioning.js --key <key> --region <region> --input <input file>

연결 옵션은 다음과 같습니다.

  • --key: 음성 리소스 키입니다.
  • --region REGION: 음성 리소스 지역입니다. 예제: westus, northeurope

입력 옵션은 다음과 같습니다.

  • --input FILE: 파일에서 오디오를 입력합니다. 기본 입력은 마이크입니다.
  • --format FORMAT: 압축된 오디오 형식을 사용합니다. --file에만 유효합니다. 유효한 값은 alaw, any, flac, mp3, mulawogg_opus입니다. 기본값은 any입니다. wav 파일을 사용하려면 형식을 지정하지 마세요. 이 옵션은 JavaScript 캡션 샘플에서 사용할 수 없습니다. MP4와 같은 압축 오디오 파일의 경우 GStreamer를 설치하고 압축된 입력 오디오를 사용하는 방법을 참조하세요.

언어 옵션은 다음과 같습니다.

  • --languages LANG1,LANG2: 언어 식별을 지정된 언어에 사용하도록 설정합니다. 예: en-US,ja-JP 이 옵션은 C++, C# 및 Python 캡션 샘플에서만 사용할 수 있습니다. 자세한 내용은 언어 식별을 참조하세요.

인식 옵션은 다음과 같습니다.

  • --recognizing: Recognizing 이벤트 결과를 출력합니다. 기본 출력은 Recognized 이벤트 결과만입니다. 이러한 결과는 항상 콘솔에 기록되며, 출력 파일에는 기록되지 않습니다. --quiet 옵션은 이를 재정의합니다. 자세한 내용은 음성 인식 결과 가져오기를 참조하세요.

정확도 옵션은 다음과 같습니다.

출력 옵션은 다음과 같습니다.

  • --help: 이 도움말을 표시하고 중지합니다.
  • --output FILE: 캡션을 지정된 file에 출력합니다. 이 플래그는 필수입니다.
  • --srt: 캡션을 SRT(SubRip 텍스트) 형식으로 출력합니다. 기본 형식은 WebVTT(웹 비디오 텍스트 트랙)입니다. SRT 및 WebVTT 캡션 파일 형식에 대한 자세한 내용은 캡션 출력 형식을 참조하세요.
  • --quiet: 오류를 제외하고는 콘솔 출력을 표시하지 않습니다.
  • --profanity OPTION: 유효한 값은 raw, remove, mask입니다. 자세한 내용은 욕설 필터 개념을 참조하세요.
  • --threshold NUMBER: 안정적인 부분 결과 임계값을 설정합니다. 기본값은 3입니다. 자세한 내용은 부분적인 결과 가져오기 개념을 참조하세요.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

참조 설명서 | 패키지(다운로드) | GitHub의 추가 샘플

Objective-C용 Speech SDK는 캡션에 대한 음성 인식 결과 가져오기를 지원하지만, 지침은 아직 여기에 포함되지 않았습니다. 다른 프로그래밍 언어를 선택해서 작업을 시작하고 개념을 알아보거나 이 문서의 앞 부분에 링크된 Objective-C 참조 및 샘플을 참조하세요.

참조 설명서 | 패키지(다운로드) | GitHub의 추가 샘플

Swift용 Speech SDK는 캡션에 대한 음성 인식 결과 가져오기를 지원하지만, 지침은 아직 여기에 포함되지 않았습니다. 다른 프로그래밍 언어를 선택해서 작업을 시작하고 개념을 알아보거나 이 문서의 앞 부분에 링크된 Swift 참조 및 샘플을 참조하세요.

참조 설명서 | 패키지(PyPi) | GitHub의 추가 샘플

이 빠른 시작에서는 콘솔 앱을 실행하여 음성 텍스트 변환을 통해 캡션을 만듭니다.

Speech Studio를 사용해 보고, 샘플 비디오 클립을 선택하여 실시간 또는 오프라인으로 처리된 캡션 결과를 확인합니다.

필수 구성 요소

환경 설정

Python용 Speech SDK는 PyPI(Python Package Index) 모듈로 사용할 수 있습니다. Python용 Speech SDK는 Windows, Linux 및 macOS와 호환됩니다.

  1. Python 3.10 이상 버전을 설치합니다. 먼저 SDK 설치 가이드에서 추가 요구 사항을 확인합니다.
  2. 또한 압축된 입력 오디오를 위해 GStreamer를 설치해야 합니다.

환경 변수 설정

Azure AI 서비스에 액세스하려면 애플리케이션을 인증해야 합니다. 이 문서에서는 환경 변수를 사용하여 자격 증명을 저장하는 방법을 보여 줍니다. 그런 다음, 코드에서 환경 변수에 액세스하여 애플리케이션을 인증할 수 있습니다. 프로덕션의 경우 자격 증명을 저장하고 액세스하는 더 안전한 방법을 사용하세요.

Important

클라우드에서 실행되는 애플리케이션에 자격 증명을 저장하지 않으려면 Microsoft Entra ID 인증과 함께 Azure 리소스에 대한 관리 ID를 사용하는 것이 좋습니다.

API 키를 사용하는 경우 Azure Key Vault와 같이 다른 곳에 안전하게 저장합니다. API 키를 코드에 직접 포함하지 말고, 공개적으로 게시하지 마세요.

AI 서비스 보안에 대한 자세한 내용은 Azure AI 서비스에 대한 요청 인증을 참조하세요.

Speech 리소스 키와 지역에 대한 환경 변수를 설정하려면 콘솔 창을 열고 운영 체제 및 개발 환경에 대한 지침을 따릅니다.

  • SPEECH_KEY 환경 변수를 설정하려면 your-key를 리소스에 대한 키 중 하나로 바꿉니다.
  • SPEECH_REGION 환경 변수를 설정하려면 your-region를 리소스에 대한 지역 중 하나로 바꿉니다.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

참고 항목

현재 콘솔에서만 환경 변수에 액세스해야 하는 경우 환경 변수를 setx 대신 set으로 설정할 수 있습니다.

환경 변수를 추가한 후에는 콘솔 창을 포함하여 실행 중인 프로그램 중에서 환경 변수를 읽어야 하는 프로그램을 다시 시작해야 할 수도 있습니다. 예를 들어 편집기로 Visual Studio를 사용하는 경우 Visual Studio를 다시 시작한 후 예제를 실행합니다.

음성에서 캡션 만들기

다음 단계에 따라 캡션 빠른 시작 코드 예제를 빌드하고 실행합니다.

  1. GitHub의 scenarios/python/console/captioning/ 샘플 파일을 다운로드하거나 로컬 디렉터리에 복사합니다.
  2. captioning.py와 동일한 디렉터리에서 명령 프롬프트를 엽니다.
  3. 다음 명령을 실행하여 Speech SDK를 설치합니다.
    pip install azure-cognitiveservices-speech
    
  4. 기본 설정 명령줄 인수를 사용하여 애플리케이션을 실행합니다. 사용 가능한 옵션은 사용법 및 인수를 참조하세요. 다음은 예제입니다.
    python captioning.py --input caption.this.mp4 --format any --output caption.output.txt --srt --realTime --threshold 5 --delay 0 --profanity mask --phrases "Contoso;Jessie;Rehaan"
    

    Important

    --input--output으로 지정한 경로가 유효한지 확인합니다. 그렇지 않으면 경로를 변경해야 합니다.

    에서 설명한 대로 SPEECH_KEYSPEECH_REGION 환경 변수를 설정해야 합니다. 그렇지 않은 경우 --key--region 인수를 사용하세요.

결과 확인

위의 예제에서 realTime 옵션을 사용하면 Recognizing 이벤트의 부분적인 결과가 출력에 포함됩니다. 이 예제에서는 마지막 Recognized 이벤트에만 쉼표가 포함됩니다. 쉼표는 RecognizingRecognized 이벤트 간의 유일한 차이점이 아닙니다. 자세한 내용은 부분적인 결과 가져오기를 참조하세요.

1
00:00:00,170 --> 00:00:00,380
The

2
00:00:00,380 --> 00:00:01,770
The rainbow

3
00:00:01,770 --> 00:00:02,560
The rainbow has seven

4
00:00:02,560 --> 00:00:03,820
The rainbow has seven colors

5
00:00:03,820 --> 00:00:05,050
The rainbow has seven colors red

6
00:00:05,050 --> 00:00:05,850
The rainbow has seven colors red
orange

7
00:00:05,850 --> 00:00:06,440
The rainbow has seven colors red
orange yellow

8
00:00:06,440 --> 00:00:06,730
The rainbow has seven colors red
orange yellow green

9
00:00:06,730 --> 00:00:07,160
orange, yellow, green, blue,
indigo and Violet.

--offline 옵션을 사용하면 최종 Recognized 이벤트의 결과가 안정적입니다. 부분적인 결과는 출력에 포함되지 않습니다.

1
00:00:00,170 --> 00:00:05,540
The rainbow has seven colors, red,
orange, yellow, green, blue,

2
00:00:05,540 --> 00:00:07,160
indigo and Violet.

SRT(SubRip 텍스트) 시간 범위 출력 형식은 hh:mm:ss,fff입니다. 자세한 내용은 캡션 출력 형식을 참조하세요.

사용법 및 인수

사용법: python captioning.py --input <input file>

연결 옵션은 다음과 같습니다.

  • --key: 음성 리소스 키입니다. SPEECH_KEY 환경 변수를 재정의합니다. 환경 변수를 설정하거나(권장) --key 옵션을 사용해야 합니다.
  • --region REGION: 음성 리소스 지역입니다. SPEECH_REGION 환경 변수를 재정의합니다. 환경 변수를 설정하거나(권장) --region 옵션을 사용해야 합니다. 예제: westus, northeurope

Important

API 키를 사용하는 경우 Azure Key Vault와 같은 다른 위치에 안전하게 저장합니다. API 키를 코드에 직접 포함하지 말고, 공개적으로 게시하지 마세요.

AI 서비스 보안에 대한 자세한 내용은 Azure AI 서비스에 대한 요청 인증을 참조하세요.

입력 옵션은 다음과 같습니다.

  • --input FILE: 파일에서 오디오를 입력합니다. 기본 입력은 마이크입니다.
  • --format FORMAT: 압축된 오디오 형식을 사용합니다. --file에만 유효합니다. 유효한 값은 alaw, any, flac, mp3, mulawogg_opus입니다. 기본값은 any입니다. wav 파일을 사용하려면 형식을 지정하지 마세요. 이 옵션은 JavaScript 캡션 샘플에서 사용할 수 없습니다. MP4와 같은 압축 오디오 파일의 경우 GStreamer를 설치하고 압축된 입력 오디오를 사용하는 방법을 참조하세요.

언어 옵션은 다음과 같습니다.

  • --language LANG: 지원되는 해당 로캘 중 하나를 사용하여 언어를 지정합니다. 이 옵션은 캡션을 줄로 나눌 때 사용합니다. 기본값은 en-US여야 합니다.

인식 옵션은 다음과 같습니다.

  • --offline: 오프라인 결과를 출력합니다. --realTime를 재정의합니다. 기본 출력 모드가 오프라인입니다.
  • --realTime: 실시간 결과를 출력합니다.

실시간 출력에는 Recognizing 이벤트 결과가 포함됩니다. 기본 오프라인 출력은 Recognized 이벤트 결과만입니다. 이러한 결과는 항상 콘솔에 기록되며, 출력 파일에는 기록되지 않습니다. --quiet 옵션은 이를 재정의합니다. 자세한 내용은 음성 인식 결과 가져오기를 참조하세요.

정확도 옵션은 다음과 같습니다.

출력 옵션은 다음과 같습니다.

  • --help: 이 도움말을 표시하고 중지합니다.
  • --output FILE: 캡션을 지정된 file에 출력합니다. 이 플래그는 필수입니다.
  • --srt: 캡션을 SRT(SubRip 텍스트) 형식으로 출력합니다. 기본 형식은 WebVTT(웹 비디오 텍스트 트랙)입니다. SRT 및 WebVTT 캡션 파일 형식에 대한 자세한 내용은 캡션 출력 형식을 참조하세요.
  • --maxLineLength LENGTH: 캡션의 줄당 최대 문자 수를 LENGTH로 설정합니다. 최솟값은 20입니다. 기본값은 37입니다(중국어의 경우 30).
  • --lines LINES: 캡션의 줄 수를 LINES로 설정합니다. 최소값은 1입니다. 기본값은 2입니다.
  • --delay MILLISECONDS: 실시간 환경을 모방하기 위해 각 캡션의 표시를 지연시키는 데 걸리는 MILLISECONDS(밀리초)입니다. 이 옵션은 realTime 플래그를 사용하는 경우에만 적용됩니다. 최솟값은 0.0입니다. 기본값은 1000입니다.
  • --remainTime MILLISECONDS: 캡션이 다른 캡션으로 대체되지 않은 경우 캡션이 화면에 남아 있어야 하는 MILLISECONDS(밀리초)입니다. 최솟값은 0.0입니다. 기본값은 1000입니다.
  • --quiet: 오류를 제외하고는 콘솔 출력을 표시하지 않습니다.
  • --profanity OPTION: 유효한 값은 raw, remove, mask입니다. 자세한 내용은 욕설 필터 개념을 참조하세요.
  • --threshold NUMBER: 안정적인 부분 결과 임계값을 설정합니다. 기본값은 3입니다. 이 옵션은 realTime 플래그를 사용하는 경우에만 적용됩니다. 자세한 내용은 부분적인 결과 가져오기 개념을 참조하세요.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

이 빠른 시작에서는 콘솔 앱을 실행하여 음성 텍스트 변환을 통해 캡션을 만듭니다.

Speech Studio를 사용해 보고, 샘플 비디오 클립을 선택하여 실시간 또는 오프라인으로 처리된 캡션 결과를 확인합니다.

필수 구성 요소

환경 설정

다음 단계를 수행합니다. 플랫폼에 대한 추가 요구 사항은 음성 CLI 빠른 시작을 참조하세요.

  1. 다음 .NET CLI 명령을 실행하여 음성 CLI를 설치합니다.

    dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI
    
  2. 다음 명령을 실행하여 음성 리소스 키 및 지역을 구성합니다. SUBSCRIPTION-KEY를 음성 리소스 키로 바꾸고, REGION을 음성 리소스 지역으로 바꿉니다.

    spx config @key --set SUBSCRIPTION-KEY
    spx config @region --set REGION
    

또한 압축된 입력 오디오를 위해 GStreamer를 설치해야 합니다.

음성에서 캡션 만들기

Speech CLI를 사용하면 오디오가 포함된 모든 유형의 미디어에서 SRT(SubRip 텍스트) 및 WebVTT(웹 비디오 텍스트 트랙) 캡션을 모두 출력할 수 있습니다.

파일에서 오디오를 인식하고 WebVtt(vtt) 및 SRT(srt) 캡션을 모두 출력하려면 다음 단계를 수행합니다.

  1. caption.this.mp4라는 입력 파일이 경로에 있는지 확인합니다.

  2. 다음 명령을 실행하여 비디오 파일에서 캡션을 출력합니다.

    spx recognize --file caption.this.mp4 --format any --output vtt file - --output srt file - --output each file - @output.each.detailed --property SpeechServiceResponse_StablePartialResultThreshold=5 --profanity masked --phrases "Constoso;Jessie;Rehaan"
    

    SRT 및 WebVTT 캡션은 다음과 같이 콘솔에 출력됩니다.

    1
    00:00:00,180 --> 00:00:03,230
    Welcome to applied Mathematics course 201.
    WEBVTT
    
    00:00:00.180 --> 00:00:03.230
    Welcome to applied Mathematics course 201.
    {
      "ResultId": "561a0ea00cc14bb09bd294357df3270f",
      "Duration": "00:00:03.0500000"
    }
    

사용법 및 인수

이전 명령의 선택적 인수에 대한 세부 정보는 다음과 같습니다.

  • --file caption.this.mp4 --format any: 파일에서 오디오를 입력합니다. 기본 입력은 마이크입니다. MP4와 같은 압축 오디오 파일의 경우 GStreamer를 설치하고 압축된 입력 오디오를 사용하는 방법을 참조하세요.
  • --output vtt file ---output srt file -: WebVTT 및 SRT 캡션을 표준 출력으로 출력합니다. SRT 및 WebVTT 캡션 파일 형식에 대한 자세한 내용은 캡션 출력 형식을 참조하세요. --output 인수에 대한 자세한 내용은 Speech CLI 출력 옵션을 참조하세요.
  • @output.each.detailed: 텍스트, 오프셋 및 기간이 포함된 이벤트 결과를 출력합니다. 자세한 내용은 음성 인식 결과 가져오기를 참조하세요.
  • --property SpeechServiceResponse_StablePartialResultThreshold=5: Speech Service에서 더 정확하고 더 적은 수의 Recognizing 이벤트를 반환하도록 요청할 수 있습니다. 이 예제에서 Speech Service는 부분적인 결과를 반환하기 전에 단어를 5회 이상 인식해야 합니다. 자세한 내용은 부분적인 결과 가져오기 개념을 참조하세요.
  • --profanity masked: 인식 결과에서 욕설을 마스킹, 제거 또는 표시할지 여부를 지정할 수 있습니다. 자세한 내용은 욕설 필터 개념을 참조하세요.
  • --phrases "Constoso;Jessie;Rehaan": Contoso, Jessie 및 Rehaan과 같이 인식할 구 목록을 지정할 수 있습니다. 자세한 내용은 구 목록을 사용하여 인식 향상을 참조하세요.

리소스 정리

Azure Portal 또는 Azure CLI(명령줄 인터페이스)를 사용하여 생성된 음성 리소스를 제거할 수 있습니다.

다음 단계