• [技术干货] 天天用,但你未必了解语音识别技术
    语音识别技术,也被称为自动语音识别Automatic Speech Recognition,(ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。与说话人识别及说话人确认不同,后者尝试识别或确认发出语音的说话人而非其中所包含的词汇内容。简介:语音识别技术的应用包括语音拨号、语音导航、室内设备控制、语音文档检索、简单的听写数据录入等。语音识别技术与其他自然语言处理技术如机器翻译及语音合成技术相结合,可以构建出更加复杂的应用,例如语音到语音的翻译。语音识别技术所涉及的领域包括:信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等。历史:早在计算机发明之前,自动语音识别的设想就已经被提上了议事日程,早期的声码器可被视作语音识别及合成的雏形。而1920年代生产的"Radio Rex"玩具狗可能是最早的语音识别器,当这只狗的名字被呼唤的时候,它能够从底座上弹出来。最早的基于电子计算机的语音识别系统是由AT&T贝尔实验室开发的Audrey语音识别系统,它能够识别10个英文数字。其识别方法是跟踪语音中的共振峰。该系统得到了98%的正确率。到1950年代末,伦敦学院(College of London)的Denes已经将语法概率加入语音识别中。1960年代,人工神经网络被引入了语音识别。这一时代的两大突破是线性预测编码Linear Predictive Coding (LPC), 及动态时间规整Dynamic Time Warp技术。语音识别技术的最重大突破是隐马尔科夫模型Hidden Markov Model的应用。从Baum提出相关数学推理,经过Labiner等人的研究,卡内基梅隆大学的李开复最终实现了第一个基于隐马尔科夫模型的大词汇量语音识别系统Sphinx。。此后严格来说语音识别技术并没有脱离HMM框架。尽管多年来研究人员一直尝试将“听写机”推广,语音识别技术在目前还无法支持无限领域,无限说话人的听写机应用。原理:语音识别系统提示客户在新的场合使用新的口令密码,这样使用者不需要记住固定的口令,系统也不会被录音欺骗。文本相关的声音识别方法可以分为动态时间伸缩或隐马尔可夫模型方法。文本无关声音识别已经被研究很长时间了,不一致环境造成的性能下降是应用中的一个很大的障碍。其工作原理:动态时间伸缩方法使用瞬间的、变动倒频。1963年Bogert et al出版了《回声的时序倒频分析》。通过交换字母顺序,他们用一个含义广泛的词汇定义了一个新的信号处理技术,倒频谱的计算通常使用快速傅立叶变换。从1975年起,隐马尔可夫模型变得很流行。运用隐马尔可夫模型的方法,频谱特征的统计变差得以测量。文本无关语音识别方法的例子有平均频谱法、矢量量化法和多变量自回归法。平均频谱法使用有利的倒频距离,语音频谱中的音位影响被平均频谱去除。使用矢量量化法,语者的一套短期训练的特征向量可以直接用来描绘语者的本质特征。但是,当训练向量的数量很大时,这种直接的描绘是不切实际的,因为存储和计算的量变得离奇的大。所以尝试用矢量量化法去寻找有效的方法来压缩训练数据。Montacie et al在倒频向量的时序中应用多变量自回归模式来确定语者特征,取得了很好的效果。想骗过语音识别系统要有高质量的录音机,那不是很容易买到的。一般的录音机不能记录声音的完整频谱,录音系统的质量损失也必须是非常低的。对于大多数的语音识别系统,模仿的声音都不会成功。用语音识别来辨认身份是非常复杂的,所以语音识别系统会结合个人身份号码识别或芯片卡。语音识别系统得益于廉价的硬件设备,大多数的计算机都有声卡和麦克风,也很容易使用。但语音识别还是有一些缺点的。语音随时间而变化,所以必须使用生物识别模板。语音也会由于伤风、嗓音沙哑、情绪压力或是青春期而变化。语音识别系统比指纹识别系统有着较高的误识率,因为人们的声音不像指纹那样独特和唯一。对快速傅立叶变换计算来说,系统需要协同处理器和比指纹系统更多的效能。目前语音识别系统不适合移动应用或以电池为电源的系统。作者:云计算小百科链接:https://www.jianshu.com/p/43a526f6ac25来源:简书
  • [其他] 分享用于端到端流式语音识别的单向LSTM模型结构分析
    论文名称:Unidirectional Neural Network Architectures for End-to-End Automatic Speech Recognition作者:Niko Moritz / Takaaki Hori / Jonathan Le Roux发表时间:2019/9/19论文链接:https://paper.yanxishe.com/review/15822?from=leiphonecolumn_paperreview0420推荐原因端到端ASR模型中,以往的语音识别模块结构变成了单一的神经网络,这要求模型能处理更长的上下文信息,目前,双向LSTM(BiLSTM)已经在这方面取得了相当好的效果,但是并不适合流式语音识别。作者以此为出发点,讨论了现在流行的几种单向LSTM网络模型以及基于延时控制(latency-controlled)的BiLSTM,并且以此为基础提出了两种更好的TDLSTM(time-delayed LSTM),并且在中英文语音数据集上进行了验证。本文专门讨论网络模型设计,一方面,为了保证公平,对作为baseline的模型均做了一些优化,同时简化了输入输出模块,除了“Kaldi”-TDNN-LSTM模型在大型训练集上出现了内存溢出,其他模型均在包括延时控制、模型参数数量等方面均很接近的条件下进行训练,另一方面,作者对于如何设计一个满足需求的神经网络模型讲解的很细致,有一种读教材的感觉。因此,我还特意去搜到这个作者的个人网站,的确是个牛人http://www.jonathanleroux.org/。
  • [认证交流] 微认证之路 AI智能语音识别计算器
    ### 名称及链接 [AI智能语音识别计算器](https://edu.huaweicloud.com/certifications/0e2f9cb342a34505830a0c9630962210)   ### 课程章节 1. 语音处理技术概述 2. 语音识别和语音合成 3. 智能语音计算实践   ### 证书 ![wrz-ai-cj-yysbjsq.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202105/19/104609njo7wjvldltnlln0.png)   ### 笔记 1. 语音助手执行流程 1. 语音输入 2. 语音识别 3. 语言理解 4. 对话管理 5. 语言生成 6. 语音合成 7. 语音输出 2. 语音处理:语音 -> 语音 3. 语音合成:文字 -> 语音 4. 语音识别:语音 -> 文字 5. SIS,语音交互服务 1. ASRC,定制语音识别 2. RASR,实时语音转写 3. TTSC,定制语音合成 6. 常见的音频格式:MP3 WAV APE flac 7. 波形图,语谱图 8. 语音识别技术 1. 综合性的技术,它涉及到多个学科领域,如发声机理和听觉机理、信号处理、概率论和信息论、模式识别以及人工智能等等 9. 鸡尾酒会问题 1. 采集到的语音里有多个人同时说话,识别出每个说话人的内容 2. 远场语音识别中必须解决的重要问题 10. 语音识别任务处理流程 1. 语音文件(压缩格式) 2. 非压缩语音文件(WAV) 3. 预处理(静音切除,降噪,平滑,标准化) 4. 声学模型 5. 分帧 6. 声学特征提取 7. 语言模型 8. 单词 9. 文本文件 11. 词汇识别过程 1. 把帧识别成状态 2. 把状态组合成音素 3. 把音素组合成单词 12. 语音识别算法 混合模型,也称为hybrid模型 端到端模型,也称为end2end模型 13. 语音合成 涉及声学、语言学、数字信号处理、计算机科学等多个学科技术,是信息处理领域的一项前沿技术 14. 语音合成系统过程 1. 将文字序列转换成音韵序列 1. 涉及语言学处理,例如分词、字音转换等,以及一整套有效的韵律控制规则 2. 由系统根据音韵序列生成语音波形 1. 需要先进的语音合成技术,能按要求实时合成出高质量的语音流 15. 语音合成处理流程 1. 文本文件 2. 文本分析 3. 语音内部表示 4. 波形合成 5. 波形文件 6. 评估 16. 语音合成 1. 自然度:在单字和词组级别、在句子和篇章级别 2. 语种:单语种合成、多语种合成 17. 人类语音饱含情感,语气语速,并且不同年龄有不同的说话方式,这是现在语音合成所无法较好做到的。   ### 备注 1. 感谢老师的教学与课件 2. 欢迎各位同学一起来交流学习心得^_^ 3. 在线课程、沙箱实验、博客和直播,其中包含了许多优质的内容,推荐了解与学习。
  • [其他]   分享论文自注意力对齐:使用自注意力网络和跳块的一种延时控制的端到端语音识别模型
    论文名称:self-attention aligner: a latency-control end-to-end model for ASR using self-attention network and chunk-hopping作者:Linhao Dong / Feng Wang / Bo Xu发表时间:2019/2/18论文链接:https://paper.yanxishe.com/review/16749?from=leiphonecolumn_paperreview0420为了解决RNN结构的语音识别模型存在的训练时间长、对一些噪音很敏感等问题,作者参考了transformer结构设计了一个语音识别模型,其中编码部分使用了时间维度的池化操作进行下采样来进行时间维度的信息交互并提高模型速度,解码的部分设计了一种模拟CTC的对齐结构。此外,作者将语音识别模型与语言模型进行端到端的联合训练,使得CER得到进一步提升。将transformer结构应用语音识别,今天已经不新鲜了。但是就去年本文发表的时期而言,将另一个领域的优秀模型应用到本领域来,会遇到什么问题,要怎么解决这些问题,如何进行优化?本文的这些思路都是很值得参考的。比如,transformer模型能很好的解决文本类的NLP任务,那么将其与语音识别联合训练,也更有可能收敛,以达到提高表现的目的。转自AI研习社,https://www.leiphone.com/category/academic/QWnCOMr50v4w5a7x.html
  • [应用实践] MindSpore实现语音指令识别(迁移tf入门教程)
    概述语音识别是人工智能的一个重要领域。这里我实现的是孤立词语音识别(英语),把tf教程的例子,用MindSpore实现。https://tensorflow.google.cn/tutorials/audio/simple_audio环境准备from mindspore import context context.set_context(mode=context.GRAPH_MODE, device_target="CPU")我是在x86, windows操作系统下完成的。生成数据集数据集是http://storage.googleapis.com/download.tensorflow.org/data/mini_speech_commands.zip每个音频文件1s,一个单词。每个单词都有1000个录音。训练的数据就是音频文件,但是需要先转换成频谱信息。将音频分帧,每一帧加Hamming窗后做短时傅里叶变换,得到频谱,再把每一帧的频谱拼在一起,就得到了语谱图。由于MindSpore还没有tf.signal.stft对标的算子,这里先用np实现。import numpy as np import scipy.io.wavfile as wav def get_spectrogram(file_path): fs, waveform = wav.read(file_path) spectrogram = np.zeros([124, 129]).astype(np.float32) zero_padding = np.zeros([16000 - waveform.shape[0]], dtype=np.float32) waveform = waveform.astype(np.float32) equal_length = np.concatenate([waveform, zero_padding]) x = np.linspace(0, 254, 255, dtype=np.int64) window = 0.54 - 0.46 * np.cos(2 * np.pi * (x) / (255 - 1)) for i in range(124): p_start = i * 128 p_end = p_start + 255 frame_data = equal_length[p_start:p_end] frame_data = frame_data * window spectrum = np.fft.rfft(frame_data, n=256) spectrogram = np.abs(spectrum) return spectrogram标注,由于只有一个单词,可以直接通过音频文件所在路径获得。为了复现效果,我把tf划分训练、验证、测试,并打散后的数据顺序保存下来,用于训练的文件名保存在train_file.txt中。我借用了tf的代码import os import pathlib import matplotlib.pyplot as plt import numpy as np import seaborn as sns import tensorflow as tf from tensorflow.keras.layers.experimental import preprocessing from tensorflow.keras import layers from tensorflow.keras import models #from IPython import display # Set seed for experiment reproducibility seed = 42 tf.random.set_seed(seed) np.random.seed(seed) data_dir = pathlib.Path('data/mini_speech_commands') commands = np.array(tf.io.gfile.listdir(str(data_dir))) commands = commands[commands != 'README.md'] #print('Commands:', commands) filenames = tf.io.gfile.glob(str(data_dir) + '/*/*') filenames = tf.random.shuffle(filenames) num_samples = len(filenames) train_files = filenames[:6400] val_files = filenames[6400: 6400 + 800] test_files = filenames[-800:] # eager tensor for f in train_files: s = str(f.numpy()) print(s[2:-1])然后把输出重定向到txt文件就好了。具体要识别的就是这8个词。commands = ['yes', 'no', 'up', 'down', 'right', 'left', 'go', 'stop'] def get_data(): with open('train_file.txt', 'r', encoding='utf8') as f: files = f.readlines() for line in files: line = line.strip() data = get_spectrogram(line) label = line.split('\\\\')[-2] label_id = commands.index(label) yield data, label_id数据增强与tf一样,batch_size=64import mindspore.dataset as ds ds_train = ds.GeneratorDataset(list(get_data()), column_names=['data', 'label'] ) ds_train = ds_train.batch(64)定义网络把音频转换为语谱图后,其实就是把语音问题转化为图像问题,图像中就包含了声音的特征,这里定义了一个CV类的网络。tf2中有些算子不知道该对应哪个算子,于是凭经验做了一些替换:resize, Normalization,其他还是一样的。from mindspore.nn import Conv2d from mindspore.nn import MaxPool2d def conv2d(in_channels, out_channels): return Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=3, stride=1, pad_mode='valid', has_bias=True, weight_init='he_normal') def maxpool(): return MaxPool2d(kernel_size=(2, 2), stride=(2, 2), pad_mode='valid') from mindspore.nn import Cell import mindspore.ops.operations as P from mindspore.nn import Dense from mindspore.nn import ReLU from mindspore.nn import Flatten from mindspore.nn import Dropout from mindspore.nn import BatchNorm2d class Net(Cell): def __init__(self, batch_size): super(Net, self).__init__() self.batch_size = batch_size self.reshape = P.Reshape() self.resize = P.ResizeNearestNeighbor(size=(32, 32)) self.norm = BatchNorm2d(num_features=1) self.conv1 = conv2d(1, 32) self.relu1 = ReLU() self.conv2 = conv2d(32, 64) self.relu2 = ReLU() self.maxpool = maxpool() self.dropout1 = Dropout(keep_prob=0.25) self.flatten = Flatten() self.dense1 = Dense(in_channels=12544, out_channels=128) self.relu3 = ReLU() self.dropout2 = Dropout(keep_prob=0.5) self.dense2 = Dense(in_channels=128, out_channels=8) def construct(self, input_x): x = self.reshape(input_x, (self.batch_size, 1, 124, 129)) x = self.resize(x) x = self.norm(x) x = self.conv1(x) x = self.relu1(x) x = self.conv2(x) x = self.relu2(x) x = self.maxpool(x) x = self.dropout1(x) x = self.flatten(x) x = self.dense1(x) x = self.relu3(x) x = self.dropout2(x) x = self.dense2(x) return x网络,卷积层、池化层、全连接层,正则化、激活函数……都是很熟悉操作。定义模型损失函数本来是tf.keras.losses.SparseCategoricalCrossentropy、但我就用了SoftmaxCrossEntropyWithLogits优化器同样是Adamfrom mindspore import Model from mindspore.nn import Adam from mindspore.nn import SoftmaxCrossEntropyWithLogits net = Net(batch_size=64) opt = Adam(net.trainable_params(), learning_rate=0.0008, beta1=0.9, beta2=0.999, eps=10e-8, weight_decay=0.01) model = Model(net, loss_fn, opt) 执行训练训练10轮,中间保存一下ckptfrom mindspore.train.callback import CheckpointConfig from mindspore.train.callback import ModelCheckpoint config = CheckpointConfig(save_checkpoint_steps=10, saved_network=net) ckpoint_cb = ModelCheckpoint(prefix='asr', directory='./checkpoint', config=config) model.train(10, ds_train, ckpoint_cb)测试准确率不过这里get_data()里面要把train_file.txt改成test_file.txt# predict net = Net(batch_size=1) from mindspore import load_checkpoint ckpt_file_name = "./checkpoint/asr-10_100.ckpt" param_dict = load_checkpoint(ckpt_file_name, net) print("****start test****") batch = get_data() accu = 0 for i in range(800): input_x, label = next(batch) output = net(Tensor(input_x)) index = np.argmax(output.asnumpy()) print(commands[index], commands[label]) if index == label: accu += 1 print("accuracy: ", accu*1.0 / 800 )最后准确率达到87.13%,tf2教程里83%,竟然还高了一些hhh,可能是因为换了一些算子,不错哦,完成!不过好像不好上传...总结与思考前面也发了2次帖子,慢慢熟悉了,如何用MindSpore构建数据集和网络模型,终于做出了一个结果。俗话说“外行看热闹,内行看门道”,许多时候,还是要看结果的啦。后面还可以考虑导出mindir, 转ms模型,做一个app。比如弄一个手机上的小游戏,推箱子,贪吃蛇啥的,重点是用语音控制方向left, right, up, down,以及选择yes, no, go, stop,应该挺有意思的。真要做语音识别,肯定需要大量的数据,但是限定8个词的情况下,高准确率还是容易的,这样可以用于新手入门练手。如果有条件,还可以录制普通话的音频做训练,就不用依赖谷歌提供的数据集。
  • [技术干货] 隐马尔可夫模型(HMM)
    隐马尔可夫模型(HMM)是语音信号处理中的一种统计模型,是由Markov链演变来的,所以它是基于参数模型的统计识别方法。由于其模式库是通过反复训练形成的与训练输出信号吻合概率最大的最佳模型参数而不是预先储存好的模式样本,且其识别过程中运用待识别语音序列与HMM参数之间的似然概率达到最大值所对应的最佳状态序列作为识别输出,因此是较理想的语音识别模型。
  • [技术干货] MFCC声学特征
    01MFCC简介MFCC是Mel-Frequency Cepstral Coefficients的缩写,顾名思义MFCC特征提取包含两个关键步骤:转化到梅尔频率,然后进行倒谱分析Mel频率倒谱系数的缩写。Mel频率是基于人耳听觉特性提出来的,它与Hz频率成非线性对应关系。Mel频率倒谱系数(MFCC)则是利用它们之间的这种关系,计算得到的Hz频谱特征02MFCC提取流程MFCC参数的提取包括以下几个步骤:预滤波:CODEC前端带宽为300-3400Hz的抗混叠滤波器。A/D变换:8kHz的采样频率,12bit的线性量化精度。预加重:通过一个一阶有限激励响应高通滤波器,使信号的频谱变得平坦,不易受到有限字长效应的影响。分帧:根据语音的短时平稳特性,语音可以以帧为单位进行处理,实验中选取的语音帧长为32ms,帧叠为16ms。加窗:采用哈明窗对一帧语音加窗,以减小吉布斯效应的影响。快速傅立叶变换(Fast Fourier Transformation, FFT):将时域信号变换成为信号的功率谱。三角窗滤波:用一组Mel频标上线性分布的三角窗滤波器(共24个三角窗滤波器),对信号的功率谱滤波,每一个三角窗滤波器覆盖的范围都近似于人耳的一个临界带宽,以此来模拟人耳的掩蔽效应。求对数:三角窗滤波器组的输出求取对数,可以得到近似于同态变换的结果。离散余弦变换(Discrete Cosine Transformation, DCT):去除各维信号之间的相关性,将信号映射到低维空间。谱加权:由于倒谱的低阶参数易受说话人特性、信道特性等的影响,而高阶参数的分辨能力比较低,所以需要进行谱加权,抑制其低阶和高阶参数。倒谱均值减(Cepstrum Mean Subtraction, CMS):CMS可以有效地减小语音输入信道对特征参数的影响。差分参数:大量实验表明,在语音特征中加入表征语音动态特性的差分参数,能够提高系统的识别性能。在本系统中,我们也用到了MFCC参数的一阶差分参数和二阶差分参数。短时能量:语音的短时能量也是重要的特征参数,本系统中我们采用了语音的短时归一化对数能量及其一阶差分、二阶差分参数。MFCC提取一般流程 模式匹配 和语言处理 通过语音特征分析以后接下来就是模式匹配和语言处理声学模型是识别系统的底层模型,并且是语音识别系统中最关键的一部分。声学模型的目的是提供一种有效的方法计算语音的特征矢量序列和每个发音模板之间的距离。声学模型的设计和语言发音特点密切相关。声学模型单元大小(字发音模型、半音节模型或音素模型)对语音训练数据量大小、系统识别率,以及灵活性有较大的影响。必须根据不同语言的特点、识别系统词汇量的大小决定识别单元的大小。语言模型对中、大词汇量的语音识别系统特别重要。当分类发生错误时可以根据语言学模型、语法结构、语义学进行判断纠正,特别是一些同音字则必须通过上下文结构才能确定词义。语言学理论包括语义结构、语法规则、语言的数学描述模型等有关方面。目前比较成功的语言模型通常是采用统计语法的语言模型与基于规则语法结构命令语言模型。语法结构可以限定不同词之间的相互连接关系,减少了识别系统的搜索空间,这有利于提高系统的识别。语音识别过程实际上是一种认识过程。就像人们听语音时,并不把语音和语言的语法结构、语义结构分开来,因为当语音发音模糊时人们可以用这些知识来指导对语言的理解过程,但是对机器来说,识别系统也要利用这些方面的知识,只是如何有效地描述这些语法和语义还有困难:小词汇量语音识别系统。通常包括几十个词的语音识别系统。中等词汇量的语音识别系统。通常包括几百个词至上千个词的识别系统。大词汇量语音识别系统。通常包括几千至几万个词的语音识别系统。这些不同的限制也确定了语音识别系统的困难度。模式匹配部是语音识别系统的关键组成部分,它一般采用“基于模式匹配方式的语音识别技术”或者采用“基于统计模型方式的语音识别技术”。前者主要是指“动态时间规整(DTW法”,后者主要是指“隐马尔可夫(HMM)法”。隐马尔可夫模型(HMM)是语音信号处理中的一种统计模型,是由Markov链演变来的,所以它是基于参数模型的统计识别方法。由于其模式库是通过反复训练形成的与训练输出信号吻合概率最大的最佳模型参数而不是预先储存好的模式样本,且其识别过程中运用待识别语音序列与HMM参数之间的似然概率达到最大值所对应的最佳状态序列作为识别输出,因此是较理想的语音识别模型。动态时间归整)算法:在孤立词语音识别中,最为简单有效的方法是采用DTW(Dynamic Time Warping,动态时间归整)算法,该算法基于动态规划(DP)的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现较早、较为经典的一种算法,用于孤立词识别。HMM算法在训练阶段需要提供大量的语音数据,通过反复计算才能得到模型参数,而DTW算法的训练中几乎不需要额外的计算。所以在孤立词语音识别中,DTW算法仍然得到广泛的应用。小结:语音识别在移动终端上的应用最为火热,语音对话机器人、智能音箱、语音助手、互动工具等层出不穷,许多互联网公司纷纷投入人力、物力和财力展开此方面的研究和应用。语音识别技术也将进入工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。尤其是在智能家居系统中语音识别将成为人工智能在家庭重要的入口,同时,未来随着手持设备的小型化,智能穿戴化也将成为语音识别技术的重要应用领域。 
  • [技术干货] 人工智能语音处理-语音增强
    主要任务就是消除环境噪声对语音的影响。目前,比较常见的语音增强方法分类很多。其中基于短时谱估计增强算法中的谱减法及其改进形式是最为常用的,这是因为它的运算量较小,容易实时实现,而且增强效果也较好。此外,人们也在尝试将人工智能、隐马尔科夫模型、神经网络和粒子滤波器等理论用于语音增强,但目前尚未取得实质性进展。
  • [技术干货] 人工智能之语音识别-噪音处理
    实际采集到的音频通常会有一定强度的背景音,这些背景音一般是背景噪音,当背景噪音强度较大时,会对语音应用的效果产生明显的影响,比如语音识别率降低,端点检测灵敏度下降等,因此在语音的前端处理中,进行噪声抑制是很有必要的。噪声抑制的一般流程:稳定背景噪音频谱特征,在某一或几个频谱处幅度非常稳定,假设开始一小段背景是背景噪音,从起始背景噪音开始进行分组、Fourier变换,对这些分组求平均得到噪声的频谱。降噪过程是将含噪语音反向补偿之后得到降噪后的语音。
  • [技术干货] 语音识别-静音切除
    又称语音边界检测或者说是端点检测是指在语音信号中将语音和非语音信号时段区分开来,准确地确定出语音信号的起始点然后从连续的语音流中检测出有效的语音段。它包括两个方面,检测出有效语音的起始点即前端点,检测出有效语音的结束点即后端点。经过端点检测后,后续处理就可以只对语音信号进行,这对提高模型的精确度和识别正确率有重要作用。在语音应用中进行语音的端点检测是很必要的,首先很简单的一点,就是在存储或传输语音的场景下,从连续的语音流中分离出有效语音,可以降低存储或传输的数据量。其次是在有些应用场景中,使用端点检测可以简化人机交互,比如在录音的场景中,语音后端点检测可以省略结束录音的操作。有些产品已经使用循环神经网络( RNN)技术来进行语音的端点检测。
  • [技术干货] 人工智能之语音识别技术【科普】
    语言是人与人之间最重要的交流方式、能与机器进行自然的人机交流,是人类一直期待的事情。随着人工智能快速发展。语音识别技术作为人机交流接口的关键技术、发展迅速。在AI领域也是经常被提及。作为人工智能领域的从业者认识语音识别也是必须的。接下来就让我们科普科普。话不多说,直接上菜!语音识别概述语音识别技术就是让机器通过识别和理解过程,把语音信号转变为相应的文本或命令的技术。语音识别涉及的领域包括:数字信号处理、声学、语音学、计算机科学、心理学、人工智能等,是一门涵盖多个学科领域的交叉科学技术。语音识别的技术原理是模式识别,其一般过程可以总结为:预处理---特征提取---基于语音模型库下的模式匹配---基于语言模型库下的语言处理---完成识别预处理声音的实质是波。语音识别所使用的音频文件格式必须是未经压缩处理的文件,如人类正常的语音输入等语音输入所面对的环境是复杂的主要存在以下问题对自然语言的识别和理解。首先必须将连续的讲话分解为词、音素等单位,其次要建立一个理解语义的规则。语音信息量大,语音模式不仅对不同的说话人不同,对同一说话人也是不同的,例如,一个说话人在随意说话和认真说话时的语音信息是不同的。一个人的说话方式随着时间变化。语音的模糊性。说话者在讲话时,不同的词可能听起来是相似的。这在英语和汉语中常见。单个字母或词、字的语音特性受上下文的影响,以致改变了重音、音调、音量和发音速度等。环境噪声和干扰对语音识别有严重影响,致使识别率低。所以预处理环节需要做到两个方面 静音切除、噪音处理和语音增强
  • [经验交流] 人工智能的电子产品
    1、智能电视:除了可以观看电视节目,想打电话语音视频、网上购物、虚拟游戏等也都可以实现。2、智能灯:通过一些网络应用程序,结合自身计算能力实现核心作用,并以此提升人们的健康和幸福感。不同的生活场景,不同的心境,灯光效果也会迥异。3、智能体重秤:可以和手机关联,检测出人体脂肪、水分、蛋白质、肌肉等方面的数据,甚至连人体极其轻微的变化也可以监测和记录,可以对当前的健康情况进行综合评估,具备一定参考意义。4、智能无线运动蓝牙耳机:采用蓝牙技术取代传统线材,增加了运动统计、提醒、语音等功能。5、智能扫地机器人:自动测量工作空间,规划合理路径,大大节省了扫地时间。
  • [交流分享] 移动通信发展
    1、第一代 80年代——模拟通信时代(1G)典型系统:AMPS系统(先进移动电话系统)、TACS系统(全接入通信系统)、NMT系统(北欧移动电话系统)。缺陷:不同制式系统之间不兼容、不能提供数据业务、频率效率低、费用昂贵、保密性差、容量小等等2、第二代 90年代——数字通信时代(2G)典型系统:GSM系统、IS-95CDMA系统、DAMPS系统、JDC系统。(1)GSM系统:来源于欧洲。目前用户已超过30亿,分布212个国家和地区,占全球移动电话市场份额的80%。(2)IS-95CDMA系统:北美数字蜂窝网标准。该系统基于直接序列扩频通信。在韩国、美国、澳大利亚等国得到了大规模商用。(3)DAMPS系统:由AMPS系统发展而来,也称为ADC(美国数字蜂窝)或USDC。该系统1993年首先在美国应用,也主要是在北美的一些国家中应用。(4)JDC系统:日本数字蜂窝,也称为PDC(太平洋数字蜂窝),由日本自行研发,1993年在日本商用。2G的缺点:①不能满足未来用户的业务需求:传统的语音和低速率数据业务已经不能适应图像、语音、数据相结合的多媒体业务和高速率数据业务的需求。②不能满足用户容量的发展需求。③几个主流技术互相之间不兼容,无法实现真正的全球漫游。3、第三代 IMT-2000 (3G)典型系统:CDMA2000(美国)、WCDMA(欧洲)、TD-SCDMA(中国)。中国的3G:中国移动- TD-SCDMA、中国电信-cdma2000、中国联通-WCDMA。(1)2G时代,全球标准不一样,如何实现全球漫游?(2)如果使用的是TD-SCDMA手机,如何实现全球漫游?(3)3G时代,如何实现全球漫游的?什么叫三频手机?四频手机呢?4、第四代 4G——更快速的数据服务(1)4G是什么?4G是集3G与WLAN于一体,并能够传输高质量视频图像,它的图像传输质量与高清电视相差不多。4G通信技术并没有脱离以前的通信技术,而是以传统通信技术为基础,并利用了一些新的通信技术,来不断提高无线通信的网络效率和功能的。(2)4G的下载速度:100Mbps,实际上,受容量限制,很难达到。LTE改进并增强了3G的空中接入技术,采用OFDM和MIMO作为其无线网络演进的唯一标准。LTE FDD / LTE+:频分双工TD-LTE / TD-LTE+:时分双工WiMax / WiMax II:全球微波互联接入,能提供面向互联网的高速连接,数据传输距离最远可达50km
  • [交流吐槽] 人们想要的智能家居体验到底是什么样?
    本文来源:中关村在线 原文链接:[不想和AI“吵架”?人们想要的智能家居体验到底是什么样](https://baijiahao.baidu.com/s?id=1697391302562495356&wfr=spider&for=pc) >随着时代的快速发展,智能家居已经从一个遥不可及的概念,逐渐演化为了现在普通人触手可及的事物。智能家居在发展的过程中,其定义也先后发生了多次改变,从最开始的远程遥控概念到现在的全屋互联,智能家居已经变得越发成熟并接近人们想象中的模样。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/21/162023o9rojxfosmfbbje1.png) 智能家居生活,一直都是科幻作品热衷于描述的场景。经典科幻作品《回到未来》影片为我们展示了过去人们对于智能家居功能的基本需求、而在近年的电影作品《钢铁侠》中人们则畅想了未来智能家居的发展方向 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/21/162042vkdlplemfb61fitc.png) 《回到未来》影片画面 人们对于智能家居的需求变化正如两部影片所展示的那样,之前的人们是期望智能家居能够解决生活中的痛点需求,未来人们则希望智能家居可以提升人们的生活的体验。那么在眼下,人们想要的智能家居体验又是怎样的呢? ---- # 无感化:最好的管家就是“他”并不存在 综合网友们对于这一问题的讨论和当下技术发展的趋势,笔者将当下人们对于智能家居体验的需求总结为以下三点:无感化、智能化、稳定性,其中首当其冲的便是无感化。 人们对于智能家居的一个基本需求便是需要通过智能家电来帮助自己完成一些家务工作,例如扫地、刷碗、开关光源,就像拥有一名管家一样。但是家庭作为人们日常生活的居所,用户往往并不希望这名“管家”对自己的生活产生干扰,例如用户在客厅进行健身锻炼时并不希望扫地机器人出现来打扫卫生。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/21/16212582dqp0xmkv3texwo.png) 扫地机器人(图片来自网络) 在不打扰用户正常生活的基础上,用户对于智能家居的无感化的更高的一个要求便是无需指令便能够做到该做的事情。例如用户夜间起床饮水时,智能家居要能够及时打开夜灯并唤醒饮水机;用户在早上起床后,自动窗帘机要做到及时打开窗帘,但又不能在用户还为起床时便打开窗帘。无感化的实现,其实很多情况下并不依赖于智能化控制,其在实践中更多是依赖预先设置的自动化动作以及传感器所收集来的运动信息。 同时,很多用户也期望智能家居的硬件在视觉上也能够较少其存在感,例如光线传感器是在智能家居场景中经常用到的智能硬件,但是用户并不希望自己能够在墙面上看到一个摄像头一样的白色盒子,这也就对智能硬件提出了隐秘化安装的要求。为此现在的很多智能家居硬件厂商都开始厂商高度集成化的设计,或者是将智能硬件设计为家居中的一个常见元素。例如,蓝牙网关往往会被集成在智能音箱中,WIFI AP节点则被设计成LED灯具,LED壁灯则可以以灯带的形式藏身与家中的各个角落。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/21/162141wbcam1juj0eoath5.png) 智能吸顶灯(图片来自网络) # 智能化:没人想和AI“讲道理” 智能化,自然是智能家居的核心需求,也是智能家居中最难实现的一个环节。在当下人们对于智能化的需求主要体现在两个方面,一是高度智能的语音识别、二是能够自主学习的程序规划。 当下智能家居用户最大的一个使用痛点便是智能语音助手无法准确识别自己所下达的命令,用户往往需要特意说出相应的关键词,语音助手才能识别用户的意图,但是其目前还是不能准确领会用户下单的长句指令。这样的情况也导致了用户有时不得不反复对语音助手下达某种指令,使其能够通过深度学习引擎来记住自己所想要的表达的意图,这样的场景仿佛就像是在和AI“讲道理”。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/21/162200pxxuwqawrgysmzhq.png) 智能音箱(图片来自网络) 因此,用户希望未来的语音智能助手能够更加智能,更清晰准确地对语音指令进行语义分析,甚至能够完成长句指令的理解与处理。 用户在完成新家的智能家居搭建之后,有一件必须要做的事情,那就是对智能家居进行“编程”,也就是设置自动化指令。但是用户最开始设置的自动化指令,往往都是根据当时的情景进行设置的,随着时间的推移,用户的生活习惯也会随之发生变化。 在这样的场景下,便需要智能家居系统变得更加智能,能够根据用户的实际生活需求去自主改变之前所设定的程序。例如在智能手机上,苹果手机的面部识别程序便能够根据用户的脸部变化进行自主学习,以适应时间对用户面部数据所带来的改变,从而避免出现需要重新录入面部数据的情况出现。 # 稳定性:“掉线”是一种很差的体验 在当下的智能家居使用体验中最令人不悦的便是出现智能设备掉线的情况,这种情况的发生不但会导致智能家居系统无法及时响应用户的需求,在特殊情况下还会为用户带来不必要的焦虑。例如,如果家中的智能摄像头因为网络故障导致离线的情况出现,那么用户不免得会对家中的安全状态产生担忧,从而引发不必要的焦虑。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/21/162220n2w8ct8cycitghyn.png) 智能摄像头(图片来自网络) 因此,对于智能家居系统而言稳定性是十分关键的。而智能家居的稳定性问题并不是一个个体问题,而是一个系统问题。例如当智能音箱出现离线的情况,那么用户便无法通过语音指令对整个系统下达指令。 因此一个理想中的智能家居系统应该以一种稳定的方式进行链接,并且其中的关键节点要拥有备用方案。而设计一套互相兼容且能够稳定运行的智能家居系统,无疑是十分复杂的,这就意味着未来智能家居方案很可能将会摆脱现在“搭积木”式的搭建方式,从而转向整屋定制化搭建的方向。 --- ## 总结 随着人们对于生活质量的要求不断提高和智能硬件成本的下降,未来智能家居必将成为家家户户必备的“新家电”。如此巨大的市场需求也正在吸引来自不同领域的消费电子厂商进入这个市场,而哪个厂商能够率先提出解决无感化、智能化、稳定性这三点需求方案便更能够在这样市场当中抢占先机,例如前不久华为发布的华为全屋智能解决方案便是其中的佼佼者。
  • [技术干货] IVR 语音流程开发,调用dll文件,无法接受返回参数
    您好!      400-822-9999 建单单号:5744462       SCE业务开发调用第三方动态库dll,无法取到返回值,经过测试,第三方动态库收到返回值,并且有返回参数。                   DLL名称:                              PVCARD_SEL.dll,                 方法名称:jsCtiServer(char*,char*,char*,char*,char*,char*,char*,char*,char*,char*),                参数说明:                        areaId,action,inparam1,inparam2,inparam3为入参                        ret1,ret2,ret3,retcode,retmsg为出参IVR日志:P5到p9没有取到任何返回值