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

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

图片由之上HryshchenkoUnsplash

介绍

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

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

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

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

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

为我们将发送到API端点的请求准备报头—Source: Author

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

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

现在,下一步是最有趣的部分,我们将在上传的音频文件上执行语音到文本。我们只需要通过帖子请求是audio_url我们从之前的步骤中得到的iab_categories需要设置为的参数真正的.后者将在文本转录中触发主题检测。的示例响应TRANSCRIPT_ENDPOINT亦载于下文的主要内容末尾。

利用主题检测实现语音到文本-来源:作者

现在,为了得到转录结果(以及主题检测结果),我们需要再做一次请求。这是因为转录是异步当一个文件被提交进行转录时,我们需要一些时间才能看到结果(通常需要整个音频文件持续时间的15-30%)。

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

得到转录和主题检测结果-来源:作者

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

抄写输出到一个文件-来源:作者

口译的响应

下面是一个来自转录端点的响应示例:

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

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

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

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

完整代码

本教程中使用的完整代码可以在GitHub Gist中分享:

完整的代码使用作为本教程的一部分-源代码:作者

最终的想法

在今天的文章中,我们探讨了如何使用Python和AssemblyAI API对生成的文本转录执行语音到文本和主题检测。我们没有通过一步一步的指南,并详细解释了如何使用各种API端点来对音频和视频文件执行主题检测。

成为一员阅读Medium上的每一篇文章你的会员费直接支持我和其他你读过的作家。你也可以完全访问Medium上的每一篇报道。

机器学习工程师| Python开发者

Baidu
map