如何使用 Python 将语音转换为文本 [分步过程]
已发表: 2020-08-07目录
语音转文本简介
我们生活在一个与机器交互的方式变得多样化和复杂的时代。 我们已经从厚实的机械按钮发展到触摸屏界面。 但这种演变不仅限于硬件。 计算机输入的现状从概念开始就是文本。 尽管如此,随着 NLP(自然语言处理)和 ML(机器学习)、数据科学的进步,我们拥有将语音作为与我们的小工具交互的媒介的工具。
这些工具已经围绕着我们,并且最常作为虚拟助手为我们服务。 Google、Siri、Alexa 等都是里程碑式的成就,增加了与数字世界交互的另一个更加个性化和便捷的维度。
与大多数技术创新不同,语音转文本技术可供所有人探索,既可用于消费,也可用于构建您的项目。
Python 是世界上最常见的编程语言之一,拥有创建语音到文本应用程序的工具。
语音转文本的历史
在我们探索 Python 中的文本语句之前,有必要了解一下我们在该领域取得的进展。 以下是简化的时间表:
- Audrey ,1952:由 3 Bells 实验室的研究人员开发的第一个语音识别系统。 它只能识别数字。
- IBM Showbox (1962):IBM 的第一个语音识别系统,除了数字外,线圈还可以识别 16 个单词。 可以解决简单的算术命令并打印结果。
- 国防高级研究计划局(DARPA) (1970):DARPA 资助了语音理解研究,这导致 Harpy 发展到识别 1011 个单词。
- 隐马尔可夫模型(HMM),1980 年代:HMM 是一种统计模型,用于对需要序列信息的问题进行建模。 该模型被应用于语音识别的进一步发展。
- 谷歌语音搜索,2001:谷歌推出了语音搜索功能,使用户能够使用语音进行搜索。 这是第一个非常流行的支持语音的应用程序。
- Siri ,2011:Apple 推出了 Siri,它能够以一种实时且便捷的方式与其设备进行交互。
- Alexa ,2014 & google home ,2016:随着 google home 和 Alexa 的总销量超过 1.5 亿台,基于语音命令的虚拟助手成为主流。
另请阅读:前 7 个 Python NLP 库

语音转文本的挑战
语音到文本仍然是一个复杂的问题,远未成为真正的成品。 一些技术上的困难使这充其量是一个不完美的工具。 以下是语音识别技术的常见挑战:
1.我不精确的解释
语音识别并不总是能正确解释口语。 VUI(语音用户界面)在理解改变单词和句子之间关系的上下文方面不如人类熟练。 因此,机器可能难以理解句子的语义。
2.时间
有时,语音识别系统处理时间过长。 这可能是由于人类拥有的语音模式的多样性。 语音识别的这种困难可以通过减慢语音或发音更精确来避免,这会影响工具的便利性。
3.口音
VUI 可能会发现很难理解与平均水平不同的方言。 在同一种语言中,说话者可以用完全不同的方式说同一个词。
4. 背景噪音和响度
在理想的世界中,这些都不是问题,但事实并非如此,因此 VUI 可能会发现在嘈杂的环境(公共场所、大型办公室等)中工作具有挑战性。
必读:如何用 Python 制作聊天机器人
Python中的语音到文本
如果不想经历从头开始构建声明到文本的艰巨过程,请使用以下内容作为指南。 本指南只是对创建您自己的语音转文本应用程序的基本介绍。 除了相对较新的 Python 版本外,请确保您确实有一个正常工作的麦克风。
第 1 步:
下载以下 python 包:
- Speech_recogntion (pip install SpeechRecogntion):这是运行将语音转换为文本的最关键步骤的主包。 其他替代方案各有利弊,例如上诉、组装、google-cloud-search、pocketsphinx、Watson-developer-cloud、wit 等。
- 我的音频(点安装 Pyaudio)
- Portaudio (点安装 Portaudio)
第 2 步:
创建一个项目(随意命名),然后将 Speech_recogntion 导入为 sr。

创建识别器类的尽可能多的实例。
第 3 步:
创建这些实例后,我们现在必须定义输入源。
现在,让我们将源定义为麦克风本身(您可以使用现有的音频文件)
第 4 步:
我们现在将定义一个变量来存储输入。 我们使用“聆听”方法从源头获取信息。 因此,在我们的例子中,我们将使用麦克风作为我们在前一行代码中建立的源。
第 5 步:
现在我们已经定义了输入(麦克风作为源)并将其存储在变量('audio')中,我们只需使用识别谷歌方法将其转换为文本。 我们可以将结果存储在变量中,也可以简单地打印结果。 我们不必仅仅依赖于recognize_google,我们还有其他使用不同API 的方法也能正常工作。 此类方法的示例如下:
识别_bing()
recongize_google_cloud()
recongize_houndify()
recongize_ibm()
recongize_Sphinx() (也可以离线工作)
以下方法使用了现有的软件包,这些软件包有助于减少从头开始开发语音到文本识别软件的麻烦。 这些包有更多的工具可以帮助您构建解决更具体问题的项目。 一个有用的功能示例是您可以将默认语言从英语更改为说印地语。 这将改变打印成印地语的结果(尽管就目前而言,语音转文本最适合理解英语)。
但是,对于严格的开发人员来说,了解此类软件的运行方式是一个很好的思考练习。
让我们分解一下。
从根本上说,语音只是一种声波。 这样的声波或音频信号具有一些特征属性(这对于声学物理学来说似乎很熟悉),例如振幅、波峰和波谷、波长、周期和频率。
这种音频信号是连续的,因此具有无限的数据点。 要将这样的音频信号转换为数字信号,以便计算机可以处理它,网络必须采用与音频信号连续性非常相似的离散样本分布。
一旦我们有了合适的采样频率(8000 Hz 是一个很好的标准,因为大多数语音频率都在这个范围内),我们现在可以使用 Python 库(例如 LibROSA 和 SciPy)来处理音频信号。 然后,我们可以通过将数据集分成 2 个、训练模型和另一个来验证模型的发现来构建这些输入。
在这个阶段,可以使用 Conv1d 的模型架构,这是一种仅沿一维执行的卷积神经网络。 然后我们可以建立一个模型,定义它的损失函数,并使用神经网络来保存将语音转换为文本的最佳模型。 使用深度学习和 NLP(自然语言处理),我们可以将语句细化为文本,以实现更广泛的应用和采用。
语音识别的应用
正如我们所了解的,运行这项技术创新的工具更容易获得,因为这主要是一项软件创新,没有一家公司拥有它。 这种可访问性为资源有限的开发人员打开了应用该技术的大门。

语音识别正在发展的一些领域如下:
- 搜索引擎的演变:语音识别将通过填补口头和书面交流之间的差距来帮助提高搜索准确性。
- 对医疗保健行业的影响:语音识别通过帮助完成医疗报告正在成为医疗行业的普遍特征。 随着 VUI 对医学术语的理解越来越好,采用这项技术将把时间从医生的行政工作中解放出来。
- 服务行业:在自动化日益增长的趋势中,客户可能无法让人工响应查询,因此语音识别系统可以填补这一空白。 我们将看到此功能在机场、公共交通等领域的快速增长。
- 服务供应商:电信供应商可能更多地依赖基于语音到文本的系统,该系统可以通过帮助确定呼叫者的需求并将他们引导到适当的帮助来减少等待时间。
另请阅读:语音搜索技术——有趣的事实
结论
语音转文本是一项强大的技术,很快就会无处不在。 它与 Python(世界上最流行的编程语言之一)相结合的相当简单的可用性使得创建它的应用程序更容易。 随着我们在这一领域取得长足进步,我们正在为通往数字世界的世界铺平道路,在这个世界中,访问数字世界不仅是指尖,而且是口语。
如果您有兴趣了解有关自然语言处理的更多信息,请查看我们的机器学习和人工智能执行 PG 计划,该计划专为在职专业人士设计,并经过 450 多个小时的严格培训。
如果您想了解数据科学,请查看 IIIT-B 和 upGrad 的数据科学执行 PG 计划,该计划是为在职专业人士创建的,提供 10 多个案例研究和项目、实用的实践研讨会、行业专家的指导、1与行业导师一对一,400 多个小时的学习和顶级公司的工作协助。
什么是语音到文本的转换?
在语音识别的早期,转录员戴着耳机坐着录制语音。 这个过程花费了很长时间,并且产生了低质量的成绩单。 今天,语音识别系统使用计算机将语音转换为文本。 这称为语音到文本的转换。 语音识别(也称为语音到文本的转换)是将口语单词转换为机器可读数据的过程。 目的是让人们通过语音与机器交流,让机器通过产生语音与人交流。 语音到文本的软件用于执行此转换。
语音到文本转换的挑战是什么?
语音到文本的转换存在许多挑战。 主要挑战是: 准确性,即系统必须正确地使用口语才能提取用户意图。 速度,系统需要能够以足够快的速度执行上述操作以被用户接受。 自然,系统应该听起来尽可能自然,所以用户不会觉得他们必须以不自然的方式说话。 鲁棒性,系统应该能够处理大量的背景噪声、其他语音和任何其他可能干扰转换过程的影响。
语音在文本处理中有哪些应用?
您需要将语音转换为文本的原因是因为它是一种非常快捷方便的交流方式。 语音转文本处理可以用于许多不同的应用,例如,它可以用在移动通信设备中,用户可以使用他的语音来发送消息和拨打电话,而不是在键盘上打字。 语音对文本处理的另一个应用是机器控制。 这是一种通过与发动机或其他工业机器对话来控制它的方法。