搭建智能语音助手思路整理

人工智能63

搭建一个智能语音助手可以大致分为一下几个模块

  • 唤醒模块
  • 录音模块
  • 语音转文字
  • 对话机器人
  • 文字转语音
  • 播放模块
  • 主体控制模块

待选方案

snowboy

预选方案

Respeaker USB Mic Array + pyaudio

出错后根据不同的错误做出反馈,主要的错误有

  • 返回空字符
  • 网络错误
    *预选方案

百度语音识别 or 讯飞语音识别(免费调用量较多)

上传文字之后对话机器人会返回相应的文字,错误的处理同语音转文字部分相同

预选方案

tuling机器人 or 百度机器人

将对话机器人返回的文字转换成语音,主要涉及语音合成技术,百度讯飞等都有相应的api

预选方案

百度语音识别 or 讯飞语音识别(免费调用量较多)

将语音播放出来

预选方案

扩音器

  • 当对话机器人回应唤醒人的时候是否进入下一轮的录音状态,或者是返回待唤醒状态
  • 接入外设时可以从语音识别的文字中查询对应的关键字,然后处理

Original: https://blog.csdn.net/weixin_49269330/article/details/120244598
Author: a昊学
Title: 搭建智能语音助手思路整理



相关阅读1

Title: 直方图均衡化的原理及实现

直方图均衡化的原理及实现

一、直方图

1.1 直方图的概念

在图像处理中, 经常用到直方图, 如颜色直方图、 灰度直方图等。

图像的灰度直方图就描述了图像中灰度分布情况, 能够很直观的展示出图像中各个灰度级所占的多少。图像的灰度直方图是灰度级的函数, 描述的是图像中具有该灰度级的像素的个数: 其中, 横坐标是灰度级, 纵坐标是该灰度级出现的率。如下图所示

搭建智能语音助手思路整理
1.2 直方图的性质

① 直方图反映了图像中的灰度分布规律。 它描述每个灰度级具有的像素个数, 但不包含这些像素在图像中的位置信息。 图像直方图不关心像素所处的空间位置, 因此不受图像旋转和平移变化的影响, 可以作为图像的特征。

② 任何一幅特定的图像都有唯一的直方图与之对应, 但不同的图像可以有相同的直方图。

③如果一幅图像有两个不相连的区域组成, 并且每个区域的直方图已知, 则整幅图像的直方图是该两个区域的直方图之和。

1.3 直方图的应用

下图是四种常见的直方图的灰度分布规律
搭建智能语音助手思路整理
如果需要将上图中灰度偏暗、偏亮或偏集中的直方图调整为灰度均匀分布的直方图,就需要用到直方图均衡化算法。

二、直方图均衡化

2.1 直方图均衡化的概念

直方图均衡化(Histogram Equalization)是一种增强图像对比度(Image Contrast)的方法,其主要思想是将一副图像的直方图分布通过累积分布函数变成近似均匀分布,从而增强图像的对比度。为了将原图像的亮度范围进行扩展, 需要一个映射函数, 将原图像的像素值均衡映射到新直方图中, 这个映射函数有两个条件:

①不能打乱原有的像素值大小顺序, 映射后亮、 暗的大小关系不能改变;

② 映射后必须在原有的范围内,即像素映射函数的值域应在0和255之间;

综合以上两个条件,累积分布函数是个好的选择,因为累积分布函数是单调增函数(控制大小关系),并且值域是0到1(控制越界问题),所以直方图均衡化中使用的是累积分布函数。

2.2 累积分布函数的数学原理

因为图像由一个个像素点组成,所以图像直方图均衡化是通过离散形式的累积分布函数求解的,直方图均衡化过程中,映射方法是:
搭建智能语音助手思路整理
其中,s_k指当前灰度级经过累积分布函数映射后的值,n是图像中像素的总和,n_j是当前灰度级的像素个数,L是图像中的灰度级总数。

(直方图均衡化数学原理,详细查看:> https://blog.csdn.net/superjunenaruto/article/details/52431941)

2.3 直方图均衡化的步骤

①依次扫描原始灰度图像的每一个像素, 计算出图像的灰度直方图;

②计算灰度直方图的累积分布函数;

③根据累积分布函数和直方图均衡化原理得到输入与输出之间的映射关系。

④最后根据映射关系得到结果进行图像变换

2.4 参考下面这个例子可以更直观的理解直方图均衡化的原理及过程
搭建智能语音助手思路整理
三、代码块及实现效果

3.1 代码块

import cv2
import numpy as np
from matplotlib import pyplot as plt

'''
calcHist-计算图像直方图
函数原型:calcHist(images,channels,mask,histSize,ranges,hist=None,accumulate=None)
images:图像矩阵,例如:[image]
channels:通道数,例如:0
mask:掩膜,一般为:None
histSize:直方图大小,一般等于灰度级数
ranges:横轴范围
'''

img = cv2.imread("D:\pycharm\exercise\spring festival holiday\lenna.PNG", 0)

hist = cv2.calcHist(,[0],None,[256],[0,256])
plt.figure()
plt.title("Grayscale Histogram")
plt.xlabel("Bins")
plt.ylabel("# of Pixels")
plt.plot(hist)
plt.xlim([0,256])
plt.show()

'''
equalizeHist—直方图均衡化
函数原型: equalizeHist(src, dst=None)
src:图像矩阵(单通道图像)
dst:默认即可
'''

dst = cv2.equalizeHist(img)

hist = cv2.calcHist([dst],[0],None,[256],[0,256])

plt.figure()
plt.hist(dst.ravel(), 256)
plt.show()

cv2.imshow("Histogram Equalization",np.hstack())
cv2.waitKey(0)

3.2 处理效果

源图直方图
搭建智能语音助手思路整理
均衡化处理后的直方图
搭建智能语音助手思路整理
源图与均衡化处理后的对比效果
搭建智能语音助手思路整理
3.3 彩色直方图均衡化代码块


img = cv2.imread("lenna.png", 1)
cv2.imshow("src", img)

(b, g, r) = cv2.split(img)
bH = cv2.equalizeHist(b)
gH = cv2.equalizeHist(g)
rH = cv2.equalizeHist(r)

result = cv2.merge((bH, gH, rH))
cv2.imshow("dst_rgb", result)

cv2.waitKey(0)

四、参考资料:

1、直方图均衡化原理:https://www.cnblogs.com/tianyalu/p/5687782.html

2、直方图均衡化的数学原理:https://blog.csdn.net/superjunenaruto/article/details/52431941

3、直方图均衡化方面的知识和方法:https://zhuanlan.zhihu.com/p/44918476

Original: https://blog.csdn.net/weixin_40163266/article/details/113802909
Author: knowyourself1
Title: 直方图均衡化的原理及实现

相关阅读2

Title: 机器学习(17)无监督学习 -- K-means算法与性能评估

目录

一、K-means

1、概念

2、过程

3、API(K-means)

二、K-means性能评估

1、轮廓系数

2、API(轮廓系数)

一、K-means

1、概念

无监督学习:没有目标值(没有标签) 。

(聚类一般在分类之前,没有目标值的时候使用聚类)

采用迭代式的算法,直观易懂且实用。

缺点:容易受到局部最优解(避免:多次聚类,取多次聚类中心)。

最优解:k个中心点挤在一起。

搭建智能语音助手思路整理

例:对这些人物的分类,没有目标值,就是无监督学习。

搭建智能语音助手思路整理

2、过程

例:对该无规则点图片进行分类,无监督学习分成3个区域(无目标值):

搭建智能语音助手思路整理

搭建智能语音助手思路整理

1、先选择K个特征点作为特征中心;(这里分成3堆,3个特征点)
2、分别计算每个点到K个聚类中心的距离,选择最近的一个中心,标记类别与其一致;
3、接着对着标记的聚类中心之后,重新计算出每个聚类的新中心点(平均值);
4、如果计算得出的新中心点与原中心点一样,那么结束,否则重新进行第2步过程。

求解中心点:

搭建智能语音助手思路整理

3、API(K-means)

搭建智能语音助手思路整理

二、K-means性能评估

1、轮廓系数

搭建智能语音助手思路整理

ai:内部距离;

bi:外部距离。

轮廓系数分析:

搭建智能语音助手思路整理

效果好的指标:高内聚,低耦合。(内部聚合,外部分开)

搭建智能语音助手思路整理
可以看出:
轮廓系数Sc =1时,聚类效果最好(bi>>ai,即外部距离远大于内部距离);
轮廓系数Sc=-1时,聚类效果最差(bi<

2、API(轮廓系数)

搭建智能语音助手思路整理

Original: https://blog.csdn.net/great_yzl/article/details/120272338
Author: 睿智
Title: 机器学习(17)无监督学习 -- K-means算法与性能评估

相关阅读3

Title: 多目标跟踪算法方案总结

参考资源

b站:https://www.bilibili.com/video/BV1m44y1H7SJ/?spm_id_from=333.788.recommend_more_video.0&vd_source=ed09a620bf87401694f763818a31c91e

视频笔记

搭建智能语音助手思路整理
多目标跟踪,又叫MOT。
搭建智能语音助手思路整理
跟踪算法同时为每个目标分配一个id。
搭建智能语音助手思路整理
目标跟踪需要在目标检测的基础上,进一步做数据关联。也就是说多目标跟踪需要考虑两帧之间哪两个目标属于同一个目标对象。
搭建智能语音助手思路整理

搭建智能语音助手思路整理

; 多目标跟踪流程

搭建智能语音助手思路整理
搭建智能语音助手思路整理
首先,将视频划分成为帧并输入到多目标跟踪算法中,假设我们运行到了第t帧,通过一系列特征提取算法来获取当前帧中每个检测目标的特征,特征可以是外观特征,也可以是运动特征,然后把每一个目标的特征与前t-1帧中的跟踪对象特征进行相似度计算以及数据关联,得到最终的跟踪结果。

多目标跟踪算法的分类

分类方式分为以下三种:
搭建智能语音助手思路整理
第一种:DBT/DFT,该分类方式是从检测信息的输入角度进行的。DBT是指采用检测器在每一帧中提取目标,然后利用数据关联的方法将当前帧的检测结果跟过往帧的跟踪对象关联起来,最终获取目标运动轨迹。DFT是指在初始帧通过人为初始化跟踪目标位置 ,再利用跟踪算法获取目标的运动轨迹。

搭建智能语音助手思路整理
搭建智能语音助手思路整理
第二种,online和offline。online算法会成为mot的研究趋势。
搭建智能语音助手思路整理
搭建智能语音助手思路整理

第三种:基于深度学习 or 基于传统算法
搭建智能语音助手思路整理
全局最近邻标准滤波是最早提出并被广泛应用的在线数据关联算法,其核心思想是考虑当前帧的检测结果与已有目标轨迹,计算所有可能存在的匹配,并基于求解二元分配问题,生成最大概率分配假设。联合概率数据关联方法能够考虑所有的可能性。将候选检测结果进行匹配。目前,网络流数据关联算法多为传统多目标跟踪中在视觉领域应用最多的算法,网络流算法将整个跟踪过程建模为网络表示和目标函数,以此求解最小化的问题。多假设跟踪,它最初被应用于雷达的目标跟踪,是一种基于延迟逻辑的方法,其核心思想是基于随时间推移对所有潜在的数据关联进行假设。根据接下来收到的结果以处理当前帧中相对关联的歧义。

; 经典算法介绍

搭建智能语音助手思路整理

sort算法只包含特征提取和数据关联部分,需要额外的检测器提供目标位置信息,他可以与任意的检测器进行组合。
卡尔曼滤波是将两种存在误差的测量方式进行互相优化,得到一个更优的测量结果。在这里是将线性运动的预测模型得到的bounding box 和 目标检测得到的bounding box 做一个优化,得到更加可靠的目标位置。
匈牙利算法主要用于解决跟踪对象和检测对象的最优匹配问题。

搭建智能语音助手思路整理
deepsort在sort算法的基础上,1增加了reid模型提取目标的外观特征,2增加了外观匹配以及距离匹配度,而不仅仅是sort算法中的iou匹配度。3引入matching cascade方法来进行特征匹配。
搭建智能语音助手思路整理
fairmot结构非常简单,在无锚框目标检测算法centernet的网络基础上,增加重识别头以实现联合检测和身份嵌入,在我们得到每一个检测对象的同时,会输出其对应的reid,其中的检测分支和reid分支的具体输出如右侧2图所示。如左下图,采用多层特征聚合的方式,使得深层和浅层特征融合,平衡2种任务。
搭建智能语音助手思路整理
原理很简单就是计算距离,但是效果很好。

多目标跟踪评价指标

搭建智能语音助手思路整理
搭建智能语音助手思路整理

搭建智能语音助手思路整理
搭建智能语音助手思路整理
搭建智能语音助手思路整理

; 数据集介绍

搭建智能语音助手思路整理

平台及框架介绍

搭建智能语音助手思路整理
搭建智能语音助手思路整理
搭建智能语音助手思路整理

Original: https://blog.csdn.net/qq_25310669/article/details/125560041
Author: 余生的观澜
Title: 多目标跟踪算法方案总结