Cloud Speech-to-Text On-Prem에 텍스트 변환 요청 전송

기본 요건

  1. 시작하기 전에 빠른 시작에서 필요한 모든 단계를 완료하세요.
  2. API를 배포합니다.
  3. API를 쿼리하여 작동 중인지 확인합니다.

종속 항목 설치

  1. python-speech를 클론하고 디렉터리를 샘플 디렉터리로 변경합니다.

    $ git clone https://github.com/googleapis/python-speech.git
    $ cd python-speech/samples/snippets
    
  2. pipvirtualenv가 아직 설치되지 않았으면 지금 설치합니다. 자세한 내용은 Python 개발 환경 설정 가이드를 참조하세요.

  3. virtualenv 만들기 아래 샘플은 Python 2.7 및 3.4+와 호환됩니다.

    $ virtualenv env
    $ source env/bin/activate
    
  4. 샘플 실행에 필요한 종속 항목을 설치합니다.

    $ pip install -r requirements.txt
    

코드 샘플

아래 코드 샘플에는 google-cloud-speech 라이브러리가 사용됩니다. GitHub를 사용하여 소스 둘러보기문제 보고를 수행할 수 있습니다.

오디오 파일 텍스트 변환

아래의 코드 샘플을 사용해서 공개 IP 또는 클러스터 수준 IP를 사용하여 오디오 파일을 텍스트 변환할 수 있습니다. IP 유형에 대한 자세한 내용은 API 쿼리에 대한 문서를 참조하세요.

공개 IP:

    # Using a Public IP
    $ python transcribe_onprem.py --file_path="../resources/two_channel_16k.wav" --api_endpoint=${PUBLIC_IP}:443

클러스터 수준 IP:

    # Using a cluster level IP
    $ kubectl port-forward -n $NAMESPACE $POD 10000:10000
    $ python transcribe_onprem.py --file_path="../resources/two_channel_16k.wav" --api_endpoint="0.0.0.0:10000"

Python

Speech-to-Text에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

def transcribe_onprem(
    local_file_path: str,
    api_endpoint: str,
) -> speech_v1p1beta1.RecognizeResponse:
    """
    Transcribe a short audio file using synchronous speech recognition on-prem

    Args:
      local_file_path: The path to local audio file, e.g. /path/audio.wav
      api_endpoint: Endpoint to call for speech recognition, e.g. 0.0.0.0:10000

    Returns:
      The speech recognition response
          {
    """
    # api_endpoint = '0.0.0.0:10000'
    # local_file_path = '../resources/two_channel_16k.raw'

    # Create a gRPC channel to your server
    channel = grpc.insecure_channel(target=api_endpoint)
    transport = speech_v1p1beta1.services.speech.transports.SpeechGrpcTransport(
        channel=channel
    )

    client = speech_v1p1beta1.SpeechClient(transport=transport)

    # The language of the supplied audio
    language_code = "en-US"

    # Sample rate in Hertz of the audio data sent
    sample_rate_hertz = 16000

    # Encoding of audio data sent. This sample sets this explicitly.
    # This field is optional for FLAC and WAV audio formats.
    encoding = speech_v1p1beta1.RecognitionConfig.AudioEncoding.LINEAR16
    config = {
        "encoding": encoding,
        "language_code": language_code,
        "sample_rate_hertz": sample_rate_hertz,
    }
    with io.open(local_file_path, "rb") as f:
        content = f.read()
    audio = {"content": content}

    response = client.recognize(request={"config": config, "audio": audio})
    for result in response.results:
        # First alternative is the most probable result
        alternative = result.alternatives[0]
        print(f"Transcript: {alternative.transcript}")

    return response