随着技术的进步,人与机器的交互方式变得越来越复杂。从大型机械按钮到触摸屏,硬件的变革只是冰山一角。在计算机历史的长河中,文本一直是主要的输入方式。但得益于自然语言处理(NLP)和机器学习(ML)的发展,未来将能够使用语音作为与设备交互的媒介。
虚拟助手是这些工具最常见的应用,它们无处不在。谷歌助手、Siri、Alexa等数字助手为与数字世界的个人层面沟通设定了高标准。在现代技术史上,将口头语言转换为文本的能力首次对每个想要尝试它的人免费开放。
在深入探讨Python的语音转文本特性之前,回顾在这一领域取得的进展是有趣的。以下是事件时间线的简化版本:
1952年,贝尔实验室的三位工程师建造了第一个语音识别系统Audrey,它只能识别数字。IBM的首个语音识别系统IBM Shoebox(1962年)能够识别16个单词以及数字,并能进行基本的数学计算和发布结果。
1970年代,国防高级研究计划局(DARPA)支持的语音理解研究导致了Harpy能够识别1011个单词。在1980年代,隐藏马尔可夫模型(HMM)被用于表示需要序列信息的问题,这个模型被用于开发新的语音识别技术。
2001年,谷歌推出了语音搜索工具,允许用户通过说话进行搜索,这是第一个广泛使用的语音应用。2011年,Siri为苹果设备提供了实时便捷的连接方式。2014年和2016年,Alexa和Google Home等语音激活的虚拟助手分别进入主流市场,合计销量超过1.5亿台。
语音转文本转换是一个复杂的话题,远未解决。许多技术限制使得这充其量是一个次优的工具。以下是语音识别技术最常遇到的困难:
1. 不准确的解释:语音识别并不总是准确理解口头语言。语音用户界面(VUI)并不像人类那样擅长理解改变单词和短语之间联系的上下文。因此,机器可能难以理解语句的语义。
2. 时间:有时,语音识别系统需要过多的时间来处理。这可能是因为人类有各种各样的声音模式。通过说得更慢或更准确,可以克服语音识别的这些困难,但这降低了工具的便利性。
3. 口音:VUI可能难以理解非标准方言。在同一语言中,人们可能会以截然不同的方式说出同一个词。
4. 背景噪音和响度:在理想的世界里,这些不会是问题,但事实并非如此,因此VUI可能难以在嘈杂的环境中工作(公共场所、大型办公室等)。
超出了本文的范围,将展示如何使用Python中的“语音识别”API和“PyAudio”库将语音转换为文本。这通过下载以下Python包来实现:
# 安装语音识别核心包
pip install SpeechRecognition
# 安装音频处理库
pip install Pyaudio
pip install Portaudio
以下是将音频文件转换为文本的步骤:
# 导入语音识别库
import speech_recognition as sr
# 初始化识别器类以进行语音识别,使用谷歌的语音识别技术
r = sr.Recognizer()
# 支持的音频格式包括wav、AIFF、AIFF-C和FLAC。在这个例子中,使用了一个‘wav’文件。
# 从‘被盗’视频中获取的音频剪辑说:“不知道是谁,也不知道想要什么,但如果要赎金,可以告诉没有钱。”
with sr.AudioFile('I-dont-know.wav') as source:
audio_text = r.listen(source)
# recognize_() 方法如果API无法访问会抛出请求错误,因此使用异常处理
try:
# 使用谷歌语音识别
text = r.recognize_google(audio_text)
print('将音频转录成文本...')
print(text)
except:
print('抱歉...请再次运行...')
让更详细地看看这一点。从最基本的层面上讲,语音不过是声波。在声学方面,振幅、峰值、波谷、波峰、波长、周期和频率是这些声波或音频信号的一些特征。
由于这些音频信号是连续的,它们包含无数的数据点。要将这样的音频信号转换为计算机能够处理的数字信号,网络必须采取离散的样本分布,这些样本分布紧密近似于音频信号的连续性。
一旦建立了一个合适的采样频率(8000 Hz是一个合理的起点,因为大多数语音频率都落在这个范围内),可以使用Python包如LibROSA和SciPy来分析音频信号。基于这些输入,然后将数据集分成两部分:一部分用于训练模型,另一部分用于验证模型的结论。
在这个阶段,可以使用Conv1d模型架构,这是一个单维度操作的卷积神经网络。之后,可以构建一个模型,建立其损失函数,并使用神经网络来防止最佳模型将语音转换为文本。可以使用深度学习和NLP(自然语言处理)将陈述转换为文本,以实现更广泛的应用和接受。
由于这主要是一个不属于任何公司的软件创造,因此有更多工具可以操作这一技术突破。因此,即使是资金有限的开发者也能够使用这项技术来创建创新应用。
以下是语音识别正在获得关注的一些领域:
搜索引擎的演变:语音识别将帮助提高搜索准确性,弥合口头和文本通信之间的差距。
对医疗行业的影响:语音识别在医疗领域变得越来越普遍,因为它加快了医疗报告的制作速度。随着VUI提高理解医疗语言的能力,临床医生将通过使用这项技术从行政任务中节省时间。
服务行业:随着自动化的进步,客户可能无法联系到人类来回答查询;在这种情况下,语音识别系统可以填补空白。将在机场、公共交通等地方看到这一功能的快速扩展。
服务提供商:电信公司可能更加依赖语音转文本技术,这可能有助于确定来电者的需求并将他们引导到正确的支持。