Chirp: 범용 음성 모델

Chirp은 Google의 차세대 Speech-to-Text 모델입니다. 수년의 연구 결과물을 대표하는 Chirp의 첫 번째 버전을 이제 Speech-to-Text에서 사용할 수 있습니다. Chirp은 앞으로 더 많은 언어와 도메인으로 개선 및 확장될 예정입니다. 자세한 내용은 Google USM 자료를 참조하세요.

Google은 현재 음성 모델과 다른 아키텍처로 Chirp 모델을 학습시켰습니다. 단일 모델은 여러 언어의 데이터를 통합합니다. 하지만 사용자는 여전히 음성을 인식해야 하는 모델에 언어를 지정합니다. Chirp은 다른 모델의 Google Speech 기능 일부를 지원하지 않습니다. 전체 목록은 아래에서 참조하세요.

모델 식별자

Chirp은 Speech-to-Text API v2에서 사용할 수 있습니다. 다른 모델과 마찬가지로 활용할 수 있습니다.

Chirp의 모델 식별자는 chirp입니다.

인식기를 생성하는 동안이나 동기식 또는 일괄 인식 요청에서 인라인으로 이 모델을 지정할 수 있습니다.

사용 가능한 API 메서드

Chirp은 다른 모델보다 훨씬 큰 단위로 음성을 처리합니다. 따라서 실제 실시간 사용에는 적합하지 않을 수 있습니다. Chirp은 다음 API 메서드를 통해 사용할 수 있습니다.

Chirp은 다음 API 메서드에서 사용할 수 없습니다.

  • v2 Speech.StreamingRecognize
  • v1 Speech.StreamingRecognize
  • v1 Speech.Recognize
  • v1 Speech.LongRunningRecognize
  • v1p1beta1 Speech.StreamingRecognize
  • v1p1beta1 Speech.Recognize
  • v1p1beta1 Speech.LongRunningRecognize

리전

Chirp은 다음 리전에서 사용할 수 있습니다.

  • us-central1
  • europe-west4
  • asia-southeast1

자세한 내용은 언어 페이지를 참조하세요.

언어

지원되는 언어는 전체 언어 목록에서 확인할 수 있습니다.

기능 지원 및 제한사항

Chirp은 현재 많은 STT API 기능을 지원하지 않습니다. 아래에서 구체적인 제한사항을 참조하세요.

  • 신뢰도 점수: API가 값을 반환하지만 실제 신뢰도 점수는 아닙니다.
  • 음성 적응 - 지원되는 적응 기능이 없습니다.
  • 분할: 자동 분할은 지원되지 않습니다.
  • 강제 정규화 - 지원되지 않습니다.
  • 단어 수준의 신뢰도 - 지원되지 않습니다.
  • 언어 감지 - 지원되지 않습니다.

Chirp은 다음 기능을 지원합니다.

  • 자동 구두점: 구두점은 모델에서 예측됩니다. 이 기능을 사용 중지할 수 있습니다.
  • 단어 시간: 선택적으로 반환됩니다.
  • 언어 제약이 없는 오디오 스크립트 작성: 모델이 오디오 파일에서 음성 언어를 자동으로 추론하고 결과에 추가합니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. Enable the Speech-to-Text APIs.

    Enable the APIs

  5. 프로젝트에 다음 역할이 있는지 확인합니다. Cloud Speech Administrator

    역할 확인

    1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

      IAM으로 이동
    2. 프로젝트를 선택합니다.
    3. 주 구성원 열에서 이메일 주소가 있는 행을 찾습니다.

      이메일 주소가 열에 없으면 역할이 없는 것입니다.

    4. 이메일 주소가 있는 행에 대해 역할 열에서 역할 목록에 필요한 역할이 있는지 확인합니다.

    역할 부여

    1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

      IAM으로 이동
    2. 프로젝트를 선택합니다.
    3. 액세스 권한 부여를 클릭합니다.
    4. 새 주 구성원 필드에 이메일 주소를 입력합니다.
    5. 역할 선택 목록에서 역할을 선택합니다.
    6. 역할을 추가로 부여하려면 다른 역할 추가를 클릭하고 각 역할을 추가합니다.
    7. 저장을 클릭합니다.
  6. Install the Google Cloud CLI.
  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  9. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  10. Enable the Speech-to-Text APIs.

    Enable the APIs

  11. 프로젝트에 다음 역할이 있는지 확인합니다. Cloud Speech Administrator

    역할 확인

    1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

      IAM으로 이동
    2. 프로젝트를 선택합니다.
    3. 주 구성원 열에서 이메일 주소가 있는 행을 찾습니다.

      이메일 주소가 열에 없으면 역할이 없는 것입니다.

    4. 이메일 주소가 있는 행에 대해 역할 열에서 역할 목록에 필요한 역할이 있는지 확인합니다.

    역할 부여

    1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

      IAM으로 이동
    2. 프로젝트를 선택합니다.
    3. 액세스 권한 부여를 클릭합니다.
    4. 새 주 구성원 필드에 이메일 주소를 입력합니다.
    5. 역할 선택 목록에서 역할을 선택합니다.
    6. 역할을 추가로 부여하려면 다른 역할 추가를 클릭하고 각 역할을 추가합니다.
    7. 저장을 클릭합니다.
  12. Install the Google Cloud CLI.
  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. 클라이언트 라이브러리는 애플리케이션 기본 사용자 인증 정보를 사용하여 간편하게 Google API를 인증하고 API에 요청을 보낼 수 있습니다. 애플리케이션 기본 사용자 인증 정보를 사용하면 애플리케이션을 로컬에서 테스트하고 기본 코드를 변경하지 않은 상태로 배포할 수 있습니다. 자세한 내용은 클라이언트 라이브러리 사용 인증을 참조하세요.

  15. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

또한 클라이언트 라이브러리를 설치했는지 확인합니다.

Chirp로 동기 음성 인식 수행

다음은 Chirp을 사용하여 로컬 오디오 파일에서 동기 음성 인식을 수행하는 예시입니다.

Python

import os

from google.api_core.client_options import ClientOptions
from google.cloud.speech_v2 import SpeechClient
from google.cloud.speech_v2.types import cloud_speech

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")


def transcribe_chirp(
    audio_file: str,
) -> cloud_speech.RecognizeResponse:
    """Transcribes an audio file using the Chirp model of Google Cloud Speech-to-Text API.
    Args:
        audio_file (str): Path to the local audio file to be transcribed.
            Example: "resources/audio.wav"
    Returns:
        cloud_speech.RecognizeResponse: The response from the Speech-to-Text API containing
        the transcription results.

    """
    # Instantiates a client
    client = SpeechClient(
        client_options=ClientOptions(
            api_endpoint="us-central1-speech.googleapis.com",
        )
    )

    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        audio_content = f.read()

    config = cloud_speech.RecognitionConfig(
        auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
        language_codes=["en-US"],
        model="chirp",
    )

    request = cloud_speech.RecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/us-central1/recognizers/_",
        config=config,
        content=audio_content,
    )

    # Transcribes the audio into text
    response = client.recognize(request=request)

    for result in response.results:
        print(f"Transcript: {result.alternatives[0].transcript}")

    return response

언어 제약이 없는 스크립트 작성이 사용 설정된 요청 수행

다음 코드 샘플은 언어 제약이 없는 스크립트 작성을 사용 설정하여 요청을 수행하는 방법을 보여줍니다.

Python

import os

from google.api_core.client_options import ClientOptions
from google.cloud.speech_v2 import SpeechClient
from google.cloud.speech_v2.types import cloud_speech

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")


def transcribe_chirp_auto_detect_language(
    audio_file: str,
    region: str = "us-central1",
) -> cloud_speech.RecognizeResponse:
    """Transcribe an audio file and auto-detect spoken language using Chirp.
    Please see https://cloud.google.com/speech-to-text/v2/docs/encoding for more
    information on which audio encodings are supported.
    Args:
        audio_file (str): Path to the local audio file to be transcribed.
        region (str): The region for the API endpoint.
    Returns:
        cloud_speech.RecognizeResponse: The response containing the transcription results.
    """
    # Instantiates a client
    client = SpeechClient(
        client_options=ClientOptions(
            api_endpoint=f"{region}-speech.googleapis.com",
        )
    )

    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        audio_content = f.read()

    config = cloud_speech.RecognitionConfig(
        auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
        language_codes=["auto"],  # Set language code to auto to detect language.
        model="chirp",
    )

    request = cloud_speech.RecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/{region}/recognizers/_",
        config=config,
        content=audio_content,
    )

    # Transcribes the audio into text
    response = client.recognize(request=request)

    for result in response.results:
        print(f"Transcript: {result.alternatives[0].transcript}")
        print(f"Detected Language: {result.language_code}")

    return response

Google Cloud 콘솔에서 Chirp 시작하기

  1. Google Cloud 계정에 가입하고 프로젝트를 만들었는지 확인합니다.
  2. Google Cloud 콘솔에서 음성으로 이동합니다.
  3. API가 아직 사용 설정되지 않았으면 사용 설정합니다.
  4. Chirp을 사용하는 STT 인식기를 만듭니다. a. 인식기 탭으로 이동하고 만들기를 클릭합니다.

    Speech-to-Text 인식기 목록의 스크린샷입니다.

    b. 인식기 만들기 페이지에서 Chirp에 필요한 필드를 입력합니다.

    Speech-to-Text 인식기 만들기 페이지의 스크린샷입니다.

    i. 인식기의 이름을 지정합니다.

    ii. chirp을 모델로 선택합니다.

    iii. 사용하려는 언어를 선택합니다. 테스트하려는 언어당 하나의 인식기를 사용해야 합니다.

    iv. 다른 기능은 선택하지 마세요.

  5. STT UI 작업공간이 있는지 확인합니다. 아직 작업공간이 없다면 만들어야 합니다. a. 스크립트 작성 페이지로 이동하여 새 스크립트 작성을 클릭합니다.

    b. 작업공간 드롭다운을 열고 새 작업공간을 클릭하여 스크립트 작성용 작업공간을 만듭니다.

    c. 새 작업공간 만들기 탐색 사이드바에서 찾아보기를 클릭합니다.

    d. 클릭하여 새 버킷을 만듭니다.

    e. 버킷 이름을 입력하고 계속을 클릭합니다.

    f. 만들기를 클릭하여 Cloud Storage 버킷을 만듭니다.

    g. 버킷을 만든 후 선택을 클릭하여 사용할 버킷을 선택합니다.

    h. 만들기를 클릭하여 speech-to-text UI의 작업공간 만들기를 완료합니다.

  6. 실제 오디오에서 텍스트 변환을 수행합니다.

    파일 선택 또는 업로드를 보여주는 Speech-to-Text 텍스트 변환 만들기 페이지의 스크린샷입니다.

    a. 새 텍스트 변환 페이지에서 업로드(로컬 업로드) 또는 기존 Cloud Storage 파일(Cloud Storage)을 지정하여 오디오 파일을 선택합니다. 참고: UI는 오디오 파일 매개변수를 자동으로 평가하려고 시도합니다.

    b. 계속을 클릭하여 스크립트 작성 옵션으로 이동합니다.

    Chirp 모델 선택 및 텍스트 변환 작업 제출을 보여주는 Speech-to-text 텍스트 변환 만들기 페이지의 스크린샷입니다.

    c. 이전에 만든 인식기에서 Chirp의 인식에 사용할 음성 언어를 선택합니다.

    d. 모델 드롭다운에서 Chirp - 범용 음성 모델을 선택합니다.

    e. 인식기 드롭다운에서 새로 만든 인식기를 선택합니다.

    f. 제출을 클릭하여 Chirp을 사용하여 첫 번째 인식 요청을 실행합니다.

  7. Chirp 텍스트 변환 결과를 확인합니다. 스크립트 작성 페이지에서 스크립트 작성 이름을 클릭하여 결과를 확인합니다.

    b. 텍스트 변환 세부정보 페이지에서 텍스트 변환 결과를 확인하고 원하는 경우 브라우저에서 오디오를 재생합니다.

삭제

이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 수행합니다.

  1. 선택사항: 만든 사용자 인증 정보를 취소하고 로컬 사용자 인증 정보 파일을 삭제합니다.

    gcloud auth application-default revoke
  2. Optional: Revoke credentials from the gcloud CLI.

    gcloud auth revoke

콘솔

  • In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  • In the project list, select the project that you want to delete, and then click Delete.
  • In the dialog, type the project ID, and then click Shut down to delete the project.
  • gcloud

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    다음 단계