AI人工智能 语音识别

AI人工智能 构建语音识别器

语音识别或自动语音识别(ASR)是 AI 机器人等 AI 项目的关注焦点。 没有 ASR,就不可能想象一个认知机器人与人进行交互。 但是,构建语音识别器并不容易。

开发语音识别系统的困难

开发高质量的语音识别系统确实是一个难题。 语音识别技术的困难可以广泛地表征为如下所讨论的许多维度 -

词汇大小

  • 词汇大小影响开发 ASR 的难易程度。考虑以下词汇量以便更好地理解。

例如,在一个语音菜单系统中,一个小词汇由 2 到 100 个单词组成
例如,在数据库检索任务中,中等大小的词汇包含几个 100 到 1000 个单词
一个大的词汇由几万个单词组成,如在一般的听写任务中。

信道特性 - 信道质量也是一个重要的维度。 例如,人类语音包含全频率范围的高带宽,而电话语音包含频率范围有限的低带宽。 请注意,后者更难。
说话模式 - 轻松开发 ASR 还取决于说话模式,即语音是处于孤立词模式还是连接词模式,还是处于连续语音模式。 请注意,连续说话很难辨认。
口语风格 - 阅读说话可以采用正式风格,也可以采用自发风格和对话风格。 后者更难以识别。
扬声器依赖性 - 语音可以依赖扬声器,扬声器自适应或扬声器独立。 独立发言人是最难建立的。

噪音类型

  • 噪音是开发 ASR 时需要考虑的另一个因素。 信噪比可以在各种范围内,这取决于观察较少的声学环境与较多的背景噪声 -
如果信噪比大于30dB,则认为是高范围
如果信噪比在 30dB 到 10db 之间,则认为是中等信噪比
如果信噪比小于 10dB,则认为是低范围

麦克风特性 - 麦克风的质量可能很好,平均水平或低于平均水平。 此外,嘴和微型电话之间的距离可能会有所不同。 识别系统也应考虑这些因素。

AI人工智能 可视化音频信号 - 从文件读取并进行处理

记录 当必须从文件中读取音频信号时,首先使用麦克风录制

采样 用麦克风录音时,信号以数字形式存储。 但为了解决这个问题,机器需要使用离散数字形式。 因此,我们应该以某个频率进行采样,并将信号转换为离散数字形式。 选择高频采样意味着当人类听到信号时,他们会感觉它是一个连续的音频信号。

示例

以下示例显示了使用 Python 存储在文件中的逐步分析音频信号的方法。 这个音频信号的频率是 44,100HZ。

下面导入必要的软件包

import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile

现在,读取存储的音频文件。 它会返回两个值:采样频率和音频信号。 提供存储音频文件的路径,如下所示

frequency_sampling, audio_signal = wavfile.read("/Users/admin/audio_file.wav")

使用显示的命令显示音频信号的采样频率,信号的数据类型及其持续时间等参数

print('\nSignal shape:', audio_signal.shape)
print('Signal Datatype:', audio_signal.dtype)
print('Signal duration:', round(audio_signal.shape[0] / 
float(frequency_sampling), 2), 'seconds')

这一步涉及如下所示对信号进行标准化

audio_signal = audio_signal / np.power(2, 15)

在这一步中,从这个信号中提取出前 100 个值进行可视化。 为此目的使用以下命令

audio_signal = audio_signal [:100]
time_axis = 1000 * np.arange(0, len(signal), 1) / float(frequency_sampling)

现在,使用下面给出的命令可视化信号

plt.plot(time_axis, signal, color

你可能感兴趣的:(人工智能,语音识别,python,学习,运维,笔记)