Chirp:通用语音模型

Chirp 是 Google 的新一代语音转文字模型。代表着多年的研究发展,Chirp 的第一个版本现在可用于 Speech-to-Text。我们计划改进 Chrp 并将其扩展到更多语言和领域。如需了解详情,请参阅我们的论文 Google USM

我们使用与当前语音模型不同的架构训练 Chirp 模型。单个模型统一了多种语言的数据。但是,用户仍需指定模型应该用以识别语音的语言。Chirp 不支持其他模型所具备的某些 Google Speech 功能。如需查看完整列表,请参阅功能支持和限制

模型标识符

Chirp 可在 Speech-to-Text API v2 中使用。您可以像使用任何其他模型一样使用它。

Chirp 的模型标识符为:chirp

您可以在同步批量识别请求中指定此模型。

可用的 API 方法

与其他模型相比,Chirp 将语音分成更大的块进行处理。这意味着它可能不适合真正的实时使用。Chirp 可通过以下 API 方法获得:

以下 API 方法不支持 Chirp:

  • 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. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Speech-to-Text APIs.

    Enable the APIs

  5. Make sure that you have the following role or roles on the project: Cloud Speech Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      进入 IAM
    2. 选择项目。
    3. 点击 授予访问权限
    4. 新的主账号字段中,输入您的用户标识符。 这通常是 Google 账号的电子邮件地址。

    5. 选择角色列表中,选择一个角色。
    6. 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
    7. 点击 Save(保存)。
    8. Install the Google Cloud CLI.
    9. To initialize the gcloud CLI, run the following command:

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

      Go to project selector

    11. Make sure that billing is enabled for your Google Cloud project.

    12. Enable the Speech-to-Text APIs.

      Enable the APIs

    13. Make sure that you have the following role or roles on the project: Cloud Speech Administrator

      Check for the roles

      1. In the Google Cloud console, go to the IAM page.

        Go to IAM
      2. Select the project.
      3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

      4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

      Grant the roles

      1. In the Google Cloud console, go to the IAM page.

        进入 IAM
      2. 选择项目。
      3. 点击 授予访问权限
      4. 新的主账号字段中,输入您的用户标识符。 这通常是 Google 账号的电子邮件地址。

      5. 选择角色列表中,选择一个角色。
      6. 如需授予其他角色,请点击 添加其他角色,然后添加其他各个角色。
      7. 点击 Save(保存)。
      8. Install the Google Cloud CLI.
      9. To initialize the gcloud CLI, run the following command:

        gcloud init
      10. 客户端库可以使用应用默认凭据轻松进行 Google API 身份验证,并向这些 API 发送请求。借助应用默认凭据,您可以在本地测试应用并部署它,无需更改底层代码。如需了解详情,请参阅 使用客户端库时进行身份验证

      11. 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. 前往转写子页面。
      5. 点击新建转写
      6. 确保您拥有 STT 工作区。如果没有,请创建一个。

        1. 打开工作区下拉菜单,然后点击新建工作区

        2. 创建新工作区导航边栏中,点击浏览

        3. 点击以创建存储桶。

        4. 输入存储桶的名称,然后点击继续

        5. 点击创建

        6. 创建存储桶后,点击选择以选择存储桶。

        7. 点击创建以完成为 Speech-to-Text 创建工作区的过程。

      7. 对音频执行转写。

        Speech-to-text 转写创建页面,其中显示了文件选择或上传。
        1. 新建转写页面中,选择用于选择音频文件的选项:
          • 点击本地上传进行上传。
          • 点击 Cloud Storage 以指定现有的 Cloud Storage 文件。
        1. 点击继续
        Speech-to-Text 转写创建页面,其中显示了选择 Chirp 模型并提交转写作业。
        1. 转写选项部分中,从您之前创建的识别器中选择您计划用于使用 Chirp 进行识别的口语

        2. 模型* 下拉菜单中,选择 Chirp

        3. 区域下拉菜单中,选择一个区域,例如 us-central1

        4. 点击继续

        5. 如需使用 Chirp 运行您的第一个识别请求,请点击主部分中的提交

      8. 查看您的 Chirp 转写结果。

        1. 转写页面中,点击转写名称。

        2. 转写详情页面中,查看转写结果,并酌情在浏览器中播放音频。

      清理

      为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

      1. Optional: Revoke the authentication credentials that you created, and delete the local credential file.

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

        gcloud auth revoke

      控制台

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

      Go to Manage resources

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

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

      后续步骤