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 서비스를 사용하여 오디오 파일의 음성을 스크립트로 작성합니다.
만든 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를 참조하세요.
Python 스크립트를 저장합니다.
Python 스크립트를 실행하여 오디오 스크립트를 작성합니다.
python SCRIPT_NAMESCRIPT_NAME을 Python 스크립트에 지정한 이름(예:speech.py)으로 바꿉니다.