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. 点击保存
    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. 点击保存
      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. 创建一个使用 Chirp 的 STT 识别器。 a. 转到识别器标签页,然后点击创建

        Speech-to-text 识别器列表屏幕截图。

        b. 在创建识别器页面中,输入 Chirp 的必填字段。

        Speech-to-text 创建识别器页面屏幕截图。

        i. 为您的识别器命名。

        ii. 选择 chirp 作为模型。

        iii. 选择您想用的语言。您必须为计划测试的每个语言使用一个识别器。

        iv. 请勿选择其他功能。

      5. 确保您拥有 STT 界面工作区。如果您还没有工作区,则需要创建一个工作区。 a. 访问“转写”页面,然后点击新建转写

        b. 打开工作区下拉列表,然后点击新建工作区以创建用于转写的工作区。

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

        d. 点击以创建新的存储桶。

        e。 输入存储桶的名称,然后点击继续

        f. 点击创建以创建您的 Cloud Storage 存储桶。

        g.创建存储桶后,点击选择以选择要使用的存储桶。

        h.点击创建以完成为 speech-to-text 界面创建工作区的过程。

      6. 对实际音频执行转写。

        Speech-to-text 转写创建页面屏幕截图,其中显示了文件选择或上传。

        a. 在新建转写页面中,通过上传(本地上传)或指定现有的 Cloud Storage 文件(云端存储空间)来选择音频文件。注意:界面会自动尝试评估您的音频文件参数。

        b. 点击继续以转到“转写”选项

        Speech-to-Text 转写创建页面的屏幕截图,其中显示选择 Chirp 模型并提交转写作业。

        c. 从您之前创建的识别器中选择您计划用于使用 Chirp 进行识别的口语

        d. 在模型下拉列表中,选择 Chirp - 通用语音模型

        e。 在识别器下拉列表中,选择新创建的识别器。

        f. 点击提交,使用 Chirp 运行您的第一个识别请求。

      7. 查看您的 Chirp 转写结果。 a. 在转写页面中,点击转写名称以查看其结果。

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

      清理

      为避免因本页中使用的资源导致您的 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

      后续步骤