오디오 스크립트 작성

Google Distributed Cloud (GDC) 에어 갭의 Vertex AI Speech-to-Text 서비스는 오디오 파일에서 음성을 인식합니다. Speech-to-Text는 사전 학습된 API를 사용하여 감지된 오디오를 텍스트 스크립트로 변환합니다.

이 페이지에서는 Distributed Cloud에서 Speech-to-Text API를 사용하여 오디오 파일을 텍스트로 변환하는 방법을 보여줍니다.

시작하기 전에

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

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)으로 바꿉니다.