오디오 스크립트 작성

Google Distributed Cloud(GDC) 에어 갭에서 Vertex AI의 Speech-to-Text 서비스를 사용하면 오디오 파일의 음성을 텍스트 스크립트로 변환할 수 있습니다. 사전 학습된 Speech-to-Text API와 Python 클라이언트 라이브러리를 사용하여 기본 모델로 녹음된 오디오를 처리할 수 있습니다.

시작하기 전에

오디오 파일을 스크립트로 작성하려면 관리자에게 필요한 권한을 요청하세요.

IAM 역할 요청

기본 Speech-to-Text 모델을 사용하여 오디오를 스크립트로 작성하려면 IAM 프로젝트 관리자에게 문의하여 프로젝트 네임스페이스에서 AI 음성 개발자(ai-speech-developer) 역할을 요청하세요.

이 역할에 대한 자세한 내용은 IAM 권한 준비를 참조하세요.

Speech-to-Text API를 사용하려면 Speech-to-Text API가 사용 설정된 프로젝트가 있고 적절한 사용자 인증 정보가 있어야 합니다. API를 호출하는 데 도움이 되는 클라이언트 라이브러리를 설치할 수도 있습니다. 자세한 내용은 음성 인식 프로젝트 설정을 참조하세요.

기본 모델을 사용하여 오디오 스크립트 작성

Speech-to-Text는 음성 인식을 수행합니다. 음성을 인식하려는 오디오 파일을 API 요청의 콘텐츠로 직접 전송합니다. 시스템은 API 응답에서 스크립트 작성된 결과 텍스트를 반환합니다.

음성 인식 요청을 할 때 RecognitionConfig 구성 객체를 제공해야 합니다. 이 객체는 API에 오디오 데이터를 처리하는 방법과 예상되는 출력 유형을 알려줍니다. 이 구성 객체에 모델이 명시적으로 지정되지 않은 경우 Speech-to-Text는 기본 모델을 선택합니다.

자세한 내용은 Speech API 참고 리소스를 참조하세요.

다음 예시에서는 기본 Speech-to-Text 모델을 사용하여 오디오 파일의 음성을 텍스트로 변환합니다.

Python

다음 단계에 따라 Python 스크립트에서 Speech-to-Text 서비스를 사용하여 오디오 파일의 음성을 스크립트로 작성합니다.

  1. 최신 버전의 Speech-to-Text 클라이언트 라이브러리를 설치합니다.

  2. Python 스크립트에서 필수 환경 변수를 설정합니다.

  3. API 요청을 인증합니다.

  4. 만든 Python 스크립트에 다음 코드를 추가합니다.

    import base64
    
    from google.cloud import speech_v1p1beta1 as speech
    import google.auth
    from google.auth.transport import requests
    from google.api_core.client_options import ClientOptions
    
    audience="https://ENDPOINT:443"
    api_endpoint="ENDPOINT:443"
    
    def get_client(creds):
      opts = ClientOptions(api_endpoint=api_endpoint)
      return speech.SpeechClient(credentials=creds, client_options=opts)
    
    def main():
      creds = None
      try:
        creds, project_id = google.auth.default()
        creds = creds.with_gdch_audience(audience)
        req = requests.Request()
        creds.refresh(req)
      except Exception as e:
        print("Caught exception" + str(e))
        raise e
      return creds
    
    def speech_func(creds):
      tc = get_client(creds)
    
      content="BASE64_ENCODED_AUDIO"
    
      audio = speech.RecognitionAudio(
          content=base64.standard_b64decode(content)
      )
      config = speech.RecognitionConfig(
          encoding=speech.RecognitionConfig.AudioEncoding.ENCODING,
          sample_rate_hertz=RATE_HERTZ,
          audio_channel_count=CHANNEL_COUNT,
          language_code="LANGUAGE_CODE",
      )
    
      metadata = [("x-goog-user-project", "projects/PROJECT_ID")]
      resp = tc.recognize(config=config, audio=audio, metadata=metadata)
      print(resp)
    
    if __name__=="__main__":
      creds = main()
      speech_func(creds)
    

    다음을 바꿉니다.

    • ENDPOINT: 조직에 사용하는 Speech-to-Text 엔드포인트입니다. 자세한 내용은 서비스 상태 및 엔드포인트 보기를 참조하세요.
    • PROJECT_ID: 프로젝트 ID입니다.
    • BASE64_ENCODED_AUDIO: Base64 표현으로 인코딩된 오디오 데이터 바이트입니다. 이 문자열은 ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv와 유사한 문자로 시작합니다. 자세한 내용은 RecognitionAudio를 참조하세요.
    • ENCODING: 요청에 전송된 오디오 데이터의 인코딩입니다(예: LINEAR16). 자세한 내용은 AudioEncoding를 참조하세요.
    • RATE_HERTZ: 요청에 전송된 오디오 데이터의 샘플링 레이트(Hz)(8000-48000)입니다(예: 16000). LINEAR16, FLAC, MULAW 인코딩 (WAV 파일 포함)에 필요합니다. 자세한 내용은 RecognitionConfig을 참조하세요.
    • LANGUAGE_CODE: 제공된 오디오의 언어로서 BCP-47 언어 태그입니다(예: en-US). 지원되는 언어 및 해당 언어 코드 목록을 참조하세요.
    • CHANNEL_COUNT: 입력 오디오 데이터의 채널 수(1~8)입니다(예: 모노 오디오의 경우 1). LINEAR16, FLAC, MULAW 인코딩에는 audio_channel_count 설정이 필요합니다. 자세한 내용은 RecognitionConfig를 참조하세요.
  5. Python 스크립트를 저장합니다.

  6. Python 스크립트를 실행하여 오디오 스크립트를 작성합니다.

    python SCRIPT_NAME
    

    SCRIPT_NAME을 Python 스크립트에 지정한 이름(예: speech.py)으로 바꿉니다.