用Python轻松实现语音转文字

来源:《信息时代》的屏幕截图

语音是最常见的交流手段,世界上绝大多数人都依靠语音进行交流。而语音API识别系统能将口头语言转化成文本,因此,生活中有很多语音识别系统的例子。例如,苹果公司的SIRI可以识别语音并将其截取成文本。

语音识别的原理


语音识别过程

隐马尔可夫模型(HMM),即深度神经网络模型被用来将音频转换为文本。本文对此详细流程不进行过多的阐述,在本文中,我将演示如何使用Python将语音转换成文本。这可以在 "语音识别 "API和 "PyAudio "库的帮助下完成。

语音API可以同时支持几个API,在本文中,我使用了谷歌的语音识别API。更多的细节,请查看 此处。它有助于将语音转换为文本的翻译。

Python库

将音频文件转换为文本的步骤:

步骤

  1. 导入语音识别库
  2. 初始化识别器类,以便识别语音。我们正在使用的是谷歌语音识别。
  3. 语音识别支持的音频文件:wav、AIFF、AIFF-C、FLAC。本例中我使用了 "wav "文件。
  4. 我使用了’taken’电影音频剪辑,电影中里的台词 “我不知道你是谁,我不知道你想要什么,如果你在寻找赎金,我可以告诉你我没有钱”。
  5. 默认情况下,谷歌识别器读取的语言是英语。但它支持不同的语言,更多细节请查看此文档

代码

输出

如何转换不同语言的音频?

例如,如果我们想读一个法语的音频文件,那么需要在recogonize_google中添加语言选项。其余的代码保持不变。详情请参考文档

输出

1_vcZ5AeN37D-_Wwln9gdHKQ

麦克风语音转化为文本

步骤

  1. 我们需要安装PyAudio库,它用于通过麦克风和扬声器接收音频输入和输出。通常情况下,它能帮助我们通过麦克风获得声音。
    https://jovian.ai/sdhilip/speech-58d6f
  2. 代替音频文件源,我们必须使用麦克风类。其余的步骤都是一样的。

代码


我只说 “你好吗?”

输出

1_XzT9Vff0LbLDd-c7IPTMJw

使用不同的语言该怎么办呢?

同样,我们需要在recognition_google()中添加所需的语言选项。我正在用印度语言泰米尔语交谈,并在语言选项中添加了 “ta-IN”。


我只是用泰米尔语说 “你好吗”,它就准确地打印出了泰米尔语的文本。

输出

1_xZ5xnxWfzMk70wuj-uDHZQ

注意:

谷歌语音API是一种将语音转换为文本的简单方法,但它需要连接互联网来操作。

在本文中,我们已经学习了如何使用谷歌语音API将语音转换成文本。这对NLP项目非常有帮助,特别是处理音频转录数据。如果你想做一些补充,随时欢迎评论~

感谢阅读。

原文作者 Dhilip Subramanian

原文链接 https://towardsdatascience.com/easy-speech-to-text-with-python-3df0d973b426