오디오 스크립트 작성

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

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

시작하기 전에

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

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

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

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

Python 스크립트에서 Speech-to-Text 서비스를 사용하여 오디오 파일의 음성을 텍스트로 변환하려면 다음 단계를 따르세요.

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

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

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

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

    import base64
    
    from google.cloud import speech_v1p1beta1
    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_v1p1beta1.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)
        print("Got token: ")
        print(creds.token)
      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_v1p1beta1.RecognitionAudio()
      audio.content = base64.standard_b64decode(content)
      config = speech_v1p1beta1.RecognitionConfig()
      config.encoding= speech_v1p1beta1.RecognitionConfig.AudioEncoding.ENCODING
      config.sample_rate_hertz=RATE_HERTZ
      config.language_code="LANGUAGE_CODE"
      config.audio_channel_count=CHANNEL_COUNT
    
      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과 유사한 문자로 시작합니다.
    • ENCODING: 요청에 전송된 오디오 데이터의 인코딩입니다(예: LINEAR16).
    • RATE_HERTZ: 요청에 전송된 오디오 데이터의 샘플링 레이트(Hz)(예: 16000)입니다.
    • LANGUAGE_CODE: 제공된 오디오의 언어로서 BCP-47 언어 태그입니다. 지원되는 언어 및 해당 언어 코드 목록을 참고하세요.
    • CHANNEL_COUNT: 입력 오디오 데이터의 채널 수입니다(예: 1).
  5. Python 스크립트를 저장합니다.

  6. Python 스크립트를 실행하여 오디오를 텍스트로 변환합니다.

    python SCRIPT_NAME
    

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