如何使用Python执行语音到文本和主题检测

使用Python和AssemblyAI对音频文件执行文本抄写和主题检测

图片由之上HryshchenkoUnsplash

简介

在我最近的一篇文章中,我讨论了语音识别以及如何在Python中实现它.在今天的文章中,我们将进一步探索如何对音频和视频文件执行主题检测。

作为一个例子,让我们以播客为例,它随着时间的推移变得越来越流行。想象一下每天有多少播客被创建;对不同平台(如Spotify、YouTube或Apple Podcasts)上的推荐引擎来说,根据讨论的内容对所有这些播客进行分类不是很有用吗?

使用Python执行语音到文本和主题检测

在这个tu在本教程中,我们将使用AssemblyAI API来标记音频和视频文件中的主题。因此,如果您想遵循,您首先需要获得一个AssemblyAI访问令牌(这是绝对免费的),我们将在调用API时使用。

现在我们有了一个访问令牌,让我们从准备头开始,这些头将在向AssemblyAI的各个端点发送请求时使用。

准备我们将发送到API端点的请求的头-来源:作者

接下来,我们需要将音频(或视频)文件上传到AssemblyAI的托管服务。然后端点将返回上传文件的URL,我们将在后续请求中使用该文件。

上传音频/视频文件到AssemblyAI托管服务-来源:作者

现在下一步是最有趣的部分,我们将在上传的音频文件上执行语音到文本。我们只需要通过帖子请求是audio_url我们从上一步得到的iab_categories需要设置的参数真正的.后者将触发文本抄写的主题检测。的示例响应TRANSCRIPT_ENDPOINT也显示在下文Gist的末尾。

执行语音到文本的主题检测-来源:作者

现在,为了获得转录结果(以及主题检测结果),我们需要再提出一个请求。这是因为转录异步当一个文件被提交誊写时,我们需要一段时间才能访问结果(通常是整个音频文件持续时间的15-30%)。

因此,我们需要做一些得到请求,直到我们得到成功(或失败)响应,如下所示。

获取转录和主题检测结果-来源:作者

最后,让我们将接收到的结果写入文本文件,这样我们就可以更容易地检查输出并解释从转录端点接收到的响应:

将转录输出写入文件-来源:作者

口译的响应

来自转录端点的响应示例如下:

启用主题检测的转录结果示例-来源:作者

文本键包含输入音频文件上的文本抄写结果。但让我们更关注的内容categories_iab_result包含与主题检测结果相关的信息。

  • 状态:包含主题检测的状态。正常情况下,这是成功.如果由于任何原因,主题检测模型失败了,那么该值将为不可用
  • 结果:此键将包含在输入音频文件中检测到的主题列表,包括影响预测并触发预测模型做出此决定的精确文本。此外,它还包括一些关于相关性和时间戳的元数据。我们将在下面讨论这两个问题。
  • results.text:此键包括音频部分的精确抄写文本,已按特定主题标签分类。
  • results.timestamp:该键表示事件的开始和结束时间(以毫秒为单位)results.text是在输入音频文件中说的。
  • results.labels:这是一个包含主题检测模型对文本部分预测的所有标签的列表results.text.关联键对应的分数可以取之间的任何值0而且1.0并表示每个预测标签的相关性results.text
  • 总结中的主题检测模型对每个唯一标签进行检测结果数组,总结键将包括该标签在整个输入音频文件长度上的相关性。例如,如果科学>环境标签在一个60分钟长的音频文件中只检测到一次,摘要键将包含一个相对较低的标签相关性得分,因为整个转录没有被发现与该主题标签一致相关。

为了查看主题检测模型能够预测的主题标签的完整列表,请确保检查官方文件的相关章节

完整代码

本教程使用的完整代码在GitHub Gist中共享如下:

本教程使用的完整代码-来源:作者

最终的想法

在今天的文章中,我们探讨了如何使用Python和AssemblyAI API对生成的文本抄写执行语音到文本和主题检测。我们将通过一个循序渐进的指南,并详细解释了如何使用各种API端点,以便对音频和视频文件执行主题检测。

成为一员阅读Medium上的所有故事。你的会员费直接支持我和你阅读的其他作家。你还可以完全访问Medium上的所有故事。

| Python开发人员

Baidu
map