Go教程

随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼

本文主要是介绍随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

最近,谷歌云推出了Chirp 2,这是其专为ASR设计的最新一代模型。作为原Chirp模型的升级版本,Chirp 2在准确性和处理速度方面有了显著的改进。而且,Chirp 2还具有几个新的令人兴奋的功能,包括多语言转录和跨语言翻译。

在本文中,您将学习如何使用Speech-to-Text API V2 的 Python SDK 来转录关于“注意力就是一切”的 NotebookLM 播客,并利用 Chirp 2 的功能。您还将探索 Chirp 2 的一些新功能,例如语音翻译和模型调整。到文章结束时,您将更加熟悉 Chirp 2,并了解如何使用 Speech-to-Text API V2 通过 Chirp 2 实现全方位转录。

一个用STT API V2开始Chirp 2之旅的指南

要开始使用 Chirp 2,该软件支持 Speech-to-Text API V2 中的多种识别方法,包括同步、实时或流式以及批量转写。要使用 Speech-to-Text API V2 的 Python SDK 实时转录音频记录,您需要先初始化客户端。

    导入 google.cloud.speech_v2 中的 SpeechClient  
    导入 google.api_core.client_options 中的 ClientOptions  

    # 定义 API 的端点位置  
    API_ENDPOINT = f"{LOCATION}-speech.googleapis.com"  

    client = SpeechClient(client_options=ClientOptions(api_endpoint=API_ENDPOINT))

接下来,你可以定义实时识别的配置,这让你能够设置使用的模型、音频的语言代码等参数。

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

语言代码设置为["en-US"],模型为"chirp_2",并配置了自动解码设置。

请注意,“_chirp2”是该模型的正确标识符,这一点。

然后,你通过传递给配置和你想要转写的音频样本来定义实时的请求。定义实时请求时传递你想要转写的音频样本来。

    # 创建语音识别请求
    real_time_request = cloud_speech.RecognizeRequest(  
        recognizer=f"projects/{PROJECT_ID}/locations/{LOCATION}/recognizers/_",  
        config=real_time_config,  
        content=short_audio_sample_bytes)

因为我们是进行单次转写,所以不需要创建专用转写端点(Recognizer)。这解释了为什么将 recognizer 标识符留空。

最后你提交实时识别的请求,如下。在这种情况下,有一个辅助函数来帮助你解析响应,并用相关音频样本来可视化生成的转写。

response = client.recognize(request=real_time_request)  # 获取实时识别结果
real_time_recognize_results = parse_real_time_recognize_response(response)  # 解析实时识别响应

这里是解析完音频样本后得到的转录结果。

一本书的部分内容会影响后面发生的事情,这对之前的AI来说真的很难搞定,就像是只记得笑话的结尾却想弄懂整个笑话,错过了所有重要的东西,好吧,我开始明白为什么这篇论文这么火了。那么,注意力就是一切是怎么改变了一切呢?这种Transformer到底有什么特别之处呢?嗯,连标题都提示了,对吧?它完全是关于注意力的,这篇论文介绍了自注意力,基本就是模型如何同时看文本的每个部分。

现在你知道如何用Chirp 2进行实时转写了。那么Chirp 2还有什么用呢?我们再来看看Chirp 2的新功能吧。

使用逐字定时和语音适应来转录所有内容。

作为新支持的功能之一,词定时 提供了相对于音频文件开头的开始和结束时间点。这与所说单词的时间戳相对应,便于实时转录或流媒体使用。想象一下为现场活动的字幕;如果没有精确的词定时,字幕会出现与说话人不同步的情况,导致观众困惑,难以跟上对话。准确的词定时确保字幕在单词被说出时准确出现在屏幕上,为观众提供无缝的观看体验。

要启用单词定时功能,只需将 "_enable_word_timeoffsets" 参数传递给识别配置,如下所示:

# 这里设置语音识别的配置,包括语言、模型和功能等
recognition_config = cloud_speech.RecognitionConfig(  
    language_codes=["en-US"],  
    model="chirp_2",  
    features=cloud_speech.RecognitionFeatures(  
        enable_automatic_punctuation=True,  
        enable_word_time_offsets=True,   
    ),  
    auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),  
)

下面是一个单词时间排列的例子,你可以在这里看到。

如图1所示:字词时间标记

为了提高转写的准确性和包容性,Chirp 2 支持模型适应功能。这让 Chirp 2 可以适应各种口音、说话风格和声学环境。在我们的现场活动示例中,模型适应功能可以生成准确的转录,无论发言人的口音如何,都能确保观众不错过演讲中的任何一个细节。

为了处理这种情况及其他许多情况,您可以使用Python的Speech-to-Text V2 SDK中的自适应参数。使用自适应参数,您可以向模型提供提示词,使其更倾向于特定的单词和短语(AdaptationPhraseSet 类)。对于每个提示词,您可以定义一个提示词boost,这是特定单词或短语相对于其他相似发音短语的识别概率。下面是一个自适应配置的示例。

    recognition_config = cloud_speech.RecognitionConfig(  
            language_codes=["en-US"],  
            model="chirp_2",  
            features=cloud_speech.RecognitionFeatures(  
                enable_automatic_punctuation=True,  
            ),  
            adaptation=cloud_speech.SpeechAdaptation(  
              phrase_sets=[  
                  cloud_speech.SpeechAdaptation.AdaptationPhraseSet(  
                      inline_phrase_set=cloud_speech.PhraseSet(phrases=[  
                          {  
                              "value": "you know", # 经常含糊或快速说出  
                              "boost": 10.0  
                          },  
                          {  
                              "value": "他们叫什么来着?" # 犹豫和语调的变化  

                          },  
                          {  
                              "value": "是的,还真是挺疯狂的。" # 短促的插话具有简洁性和情感语调  
                          }  

                      ])  
              auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),  
                  )  
              ]  
            )  
        )

请注意使用更高的 boost 值。boost 值越高,误识别的概率也会更高。我们建议使用二分查找的方法来找到适合您场景的最佳值,并且同时在请求中加入带有和不带有 boost 的短语。

随时随地进行无特定语言的转写及语音转写

在 Chirp 2 的新功能中,语言无关转写 和 语音翻译 最为突出。这些功能使您的自动语音识别应用程序能够自动将每位参与者的发言转写并翻译成其他参与者的语言。在实时活动的场景下,Chirp 2 可以实时转录每位发言者的本地方言,并同时为其他参与者提供实时翻译。这些功能解决了语言障碍,促进了有效沟通和协作。

和之前一样,你需要通过设置 _languagecodesTranslationConfig 参数中的语言代码来定义识别设置:

  • 当设置 _languagecodes=[“auto”] 时,您将启用语言无关的转录,自动检测并转写语音内容。
  • 当 _target_language=languagecode ,其中 _languagecode 是 支持的语言 之一但不同于原始语言,您将启用语言翻译功能。

下面举一个例子,把英语音频翻译成西班牙语的配置:

    recognition_config = cloud_speech.RecognitionConfig(  

            # 设置为 'auto' 可以启用语言不可知转录, 
            language_codes=["en-US"],  

            # 如果你想获取翻译后的转录, 
            translation_config=cloud_speech.TranslationConfig(target_language="ca-ES"),  

            model="chirp_2",  
            features=cloud_speech.RecognitionFeatures(  
                enable_automatic_punctuation=True,  
            ),  
            auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),  
        )

如果你想尝试这些语言无关的转写和语音翻译功能,你也可以试试构建一个简单的ASR应用程序(自动语音识别),就像你看到的那样。

图2—“Chirp 2 Playground”游乐场

在这个情况下,你可以看到Chirp 2会自动识别音频的语言并提供相应的字幕。是不是觉得很酷?

结尾

Chirp 2,Chirp家族的最新一代终于跟大家见面啦!

与Chirp模型相比,Chirp 2提供了更高的准确性,更快的处理速度,并引入了单词级别时间戳功能、模型自适应功能和语音到文本翻译功能等新功能。

在本文中,您使用Python的Speech-to-Text API V2版本探索了Chirp 2的一些功能,这只是这个新模型可能实现的功能之一而已。想象一下,您可以使用Chirp 2的强大功能来构建什么样的应用程序!

下一步会是什么

如果你想了解更多关于Chirp 2和如何使用它,请查看以下资源。

文档
  • Chirp 2:增强的多语言准确性功能
笔记
  • get_started_with_chirp_2_sdk.ipynb (点击链接可以查看)
  • get_started_with_chirp_2_sdk_features.ipynb (点击链接可以查看)
谢谢阅读!

我希望你喜欢这篇文章。如果喜欢的话,请点个赞 👏,留言。也可以通过LinkedIn或X与我联系,分享你的想法和问题,🤗关于Vertex AI的内容。

这篇关于随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!