K210——声源定位、声音识别
前言来了,K210的声源定位。
[2022电赛]声源定位跟踪系统(E题)k210麦克风阵列效果实测!
sipeed官方做的,效果还不错。一、模块sipeed家的声源定位模块,K210常用的都可以用将麦克风阵列模块与pyAI-K210使用FPC10P排线进行连接,接口在开发板背部(排线金手指下接)。麦克风阵列扩展模块由7个数字麦克风组成,其中6个分布在四周不同方向,1个在模块正中央,便于识别各个方向声源。另外12个LED指示灯,方便指示声源位置。
二、使用说明1.相关函数2.代码#导入MIC_ARRAY和LCD模块fromMaiximportMIC_ARRAYasmicimportlcd#初始化模块lcd.init()mic.init()whileTrue:#获取原始的声源黑白位图,尺寸16*16imga=mic.get_map()#获取声源方向并设置LED显示b=mic.get_dir(imga)a=mic.set_led(b,(0,0,255))#将声源地图重置成正方形,彩虹色imgb=imga.resize(160,160)imgc=imgb.to_rainbow(1)#显示声源图lcd.display(imgc)mic.deinit()现象展示有个问题,没有坐标,没有坐标就没法定位这是一个大佬写的代码,可以去参考看一下,附上原文链接
foriinrange(len(b)):ifb[i]>=2:AngleX+=b[i]*math.sin(i*math.pi/6)AngleY+=b[i]*math.cos(i*math.pi/6)AngleX=round(AngleX,6)#计算坐标转换值AngleY=round(AngleY,6)ifAngleY0else270#填补X轴角度else:Angle=AngleAddPi+round(math.degrees(math.atan(AngleX/AngleY)),4)#计算角度AngleR=round(math.sqrt(AngleY*AngleY+AngleX*AngleX),4)#计算强度mic_list.append(AngleX)mic_list.append(AngleY)mic_list.append(AngleR)mic_list.append(Angle)a=mic.set_led(b,(0,0,255))#配置RGBLED颜色值returnmic_list#返回列表,X坐标,Y坐标,强度,角度whileTrue:print(get_mic_dir())time.sleep_ms(100)语音 AI 技术简介
语音AI技术(e.g.语音识别、语音合成)是人工智能重要的研究和应用方向。但是,不同于CV、NLP等“显学”,语音相关的从业人员(学界和业界)相对较少,语音领域的学术会议和期刊影响力也比较有限。
语音AI是一个多学科交叉的技术方向,涉及到信号处理、语言学、语音学(e.g.发音规律)、心理学(e.g.听觉感知)、传统机器学习以及深度学习等。近几年,随着深度学习的快速发展,语音也大量借鉴CV、NLP等领域的方法和成果。
鉴于此,我们简要梳理了语音AI的主要技术及应用场景。一方面,希望能够吸引更多不同专业背景的同侪投身语音AI领域;另一方面,希望能对有志于学习语音技术的同学提供一些帮助。欢迎有兴趣的同行或同学私信交流。
1.技术方向语音AI包括了一系统相关的技术,下面对其中的若干重要方向进行简要介绍。(一篇旧文,介绍了语音算法在智能音箱中的应用,感兴趣的读者也可以参考。)
1.1语音识别1.1.1ASR语音识别(AutomaticSpeechRecognition,ASR)是将语音信号转换成对应文本的AI技术。大词汇连续语音识别(LVCSR)的技术突破开始于20世纪80年代,此时隐马尔可夫模型(HMM)被用于建模语音信号。早期使用高斯混合模型(GMM)对发音分布进行建模,这种方案称为GMM-HMM系统。基于HMM-GMM的技术方案在20多年前已经发展成熟,其中HTK为集大成者。Kaldi后来居上,基本终结了这方面的学术研究和工程开发(欧洲、日本有团队使用其他类似但比较小众的工具)。基于人工神经网络(ANN)的ASR研究几乎与GMM方案同时开展,但由于早期各方面条件不成熟,没有能够成功应用。2009年前后,深度神经网络(DNN)被重新引入声学建模,并取得了突破性的进展。相关成果在12年被Google、微软等5家主流研究机构共同报告,ASR进入深度学习时代。使用深度神经网络做为声学模型的方案称为DNN-HMM系统,通常也称为hybrid系统(建模过程中混合使用了GMM-HMM相关技术)。
GMM-HMM和DNN-HMM都属于传统的语音识别系统(conventionalASR),它们由若干独立模块组成:前端模块、声学模型、发音辞典、语言模型和解码器。端到端(End-to-End)语音识别方案则希望将各个模块统一起来,由单独的神经网络进行联合建模与优化。
端到端建模是也深度学习领域的圣杯。目前主流CV和NLP任务,以及声纹认证、声学场景分析等较简单的语音任务目前基本都是以端到端方案为主。语音识别、语音合成、语音信号处理由于问题本身的复杂性,目前还处于传统方案和端到端并存的阶段。虽然端到端未来能否完全取代传统方案,目前仍存在较大的争议,但一个基本的实事是,端到端是当下研究的主流,在很多场景也展现了显著的性能优势。
早在2014年之前,学界和业界就开始了端到端ASR方案的探索。从识别效果上,18年前后离线端到端系统基本达到可用水平。19年后,端到端成为学术研究的主流。目前学术会议上已经很少能看到传统语音识别的相关工作了。目前,端到端ASR有三种主要的实现方案——CTC、Transducer和AED(Attention-baseEncoder-Decoder)。
1.1.2关键词检索关键词检索(keywordsearch),可以看作是语音识别的特例。不同的是,在检索任务中,我们关注特定的关键词的检出效果,因此在技术手段上和语音识别有比较显著的差异。随着智能音箱以及手机语音助理的普通,语音唤醒(wakup)技术日渐为人熟知。唤醒在有些文献中也称了keywordspot或hotwordspot。对设备呼喊相应的唤醒(如百度音箱的“小度小度”),设备即能被激活并响应用户的需求。
因此,识别相关技术的应用中,通常都会需要VAD(VoiceActivityDetection)模块进行配合。VAD也称静音检测,其作用是检测出音频中的非语音片断并进行过滤。一方面可以减少后续识别等模块的计算量,另一方面也可以减少引入大量非语音而造成的误识别。
1.2语音合成语音合成,即TTS(Text-To-Speech),是语音识别的反向任务。TTS将给定的文本转换成相应的音频,以供播放。
1.2.1基本技术TTS主要有三类方法:参数、拼接以有端到端。
参数方法合成的语音自然度比较低,机械感明显。但参数方案的资源占用可以做到非常小,因此,在设备端依然存在大量的需求。
拼接方法顾名思义,是将音库中的语音片断拼接起来,生成目标语音。基于拼接可以合成高质量的语音,但缺点是开发流程复杂,对音库质量要求较高。目前拼接方法基本被端到端方法所取代。
端到端方法是将TTS传统的前端(TN、时长模型、声学模型)和后端(声码器)分别用神经网络建模。
前端主流的方案包括tacotron系统和fastspeech系统等。后端(神经声码器)觉的方法用WavNet、WavRNN、LPCNet、MelGAN、HifiGAN等。
1.2.2应用方向随着技术的发展,TTS已经不限于简单的播放语音,而是有了越来越多样的场景需求。例如,在电子书阅读、虚拟助手等场景,对合成语音的情感表达愈发重视。另外,用户对于个性化语音合成的需求也越来越强烈。这就涉及如何利用小样本、低音质的数据进行模型建模的技术问题。
此外,歌曲合成也是语音合成的一个应用方向。
1.3声纹技术笼统而言,声纹技术(voiceprint)是一门分析语音/音频中特定属性的技术。
1.3.1说话人识别说话人识别是一项最常用的声纹技术。在说话人识别任务中,算法需要对比录入语音与注册的语音的相似度,从而判断说话人的身份。典型的应用是微信的数据声纹锁。
1.3.2声纹检索声纹检索是说话人识别的扩展。上述说话人识别是1:1的认证任务,即只需要判断目标语音是否是给定的注册语音属于相同的说话人。而声纹检索是1:N的认证任务,即需要从大小为N的注册声纹库中挑选出最相似的说话人或都判断不在声纹库中(即集外)。声纹检索可以应用在刑侦领域,用于大规模的嫌犯筛查。
1.3.3属性识别语音中往往包含了说话人的一些生理属性,如性别、年龄等。这些属于可以通过声纹技术来进行识别。
1.3.4声学场景分析对于非纯语音的音频内容(例如短视频),有时需要对涉及的具体场景进行分析,以便分门别类进行处理(例如,语音片断转发给ASR进行转写;涉黄内容进行屏蔽)。这就涉及声学场景分析(acousticsceneananlysis)。简单而言,通过声学场景分析,我们需要确认在何时发生了何种声学事件。
1.4语音前端处理(语音信号处理)人们的工作和生活都是处于极其复杂的声学环境中,人与人之间的交流以及人与机器之间的交互都会受到噪声、干扰等多种因素的影响。语音作为各种语音类应用的入口,通过各种算法对音频信号进行处理,消除录音设备和环境等带来的影响,使得处理后的信号更能反映语音的本质特征,为语音类应用的效率和用户体验提供保证。
1.4.1主要问题语音前端处理面临的问题,大致可以分为四类:(1)回声:扬声器播放的声音又被麦克风拾取了。相应的处理方法有回声消除、回声抑制和回声控制等。(2)混响:声音除了从声源直线传播到麦克风之外,还会经过各种反射到达麦克风。响应的处理方法有混响消除和混响抑制等。(3)干扰:通常指非目标的其他人声。相应的处理方法有波束形成、盲源分离和声源定位等。(4)噪声:除回声/混响/干扰之外的非目标声音,多数情况下指代的是各种各样的环境噪声。相应的方法有降噪/增强、噪声控制和有源噪声控制等。
1.4.2应用场景实时音频通话
包括传统电话、视频通话、电话会议等。在音频通话场景,信号处理主要是用于提升语音的可懂度和听感。音频通话相关的语音前端,最重要的要数经典的3A算法,即:AEC——声学回声消除,解决通话过程中扬声器播放的声音又被麦克风采集到,导致远端说话人听到自己声音的问题;ANS——自适应噪声抑制,解决通话过程中声音被环境噪声所污染的问题;AGC——自适应增益控制,解决声音忽大忽小的问题。
语音交互
包括语音助手、智能客服和各种类型的语音控制系统等,主要服务于语音识别/唤醒/说话人识别/情感识别等。相对于通话,语音交互通常会面临更为复杂的声学环境,为了提升语音质量,很多产品采用麦克风阵列作为音频输入硬件,相应的就需要有麦克风阵列相关的语音前端处理算法,典型的有波束形成/盲源分离/声源定位等。
录音包括集中式的会议录音器、分布式会议系统、录音笔、监控系统的录音部分、以及一些特制的录音器件等,这部分应用一般是后期对语音做处理分析,所以对实时性要求比较低,甚至一部分可以做纯离线的处理
其他对实时性要求绝高的场景,像助听器的信号处理,对处理延迟的要求极高,需要达到10毫秒或者更小。扩音系统的音频前端处理,需要处理啸叫等问题。多模态处理,包括音视频结合、麦克风+骨传导传感器、声学麦克风+光学麦克风等。
2.专业技能下面介绍语音算法研发过程的用到的一些专业技能。虽然列了很多点,但依然不太全面。具体到某个特定方面(如说话人识别),可以并不需要所有这些技能,而且不同技能的熟悉度要求也不尽相同(有些可能仅仅要求能看懂)。
2.0CS基础基础知识:计算机组成(体系结构)、算法设计与分析、设计模式编程语言:c/c++、python、cuda、perl(目前用的非常少了)Linux系统基础操作:shell、vim以及awk、sed等基础工具:gcc、cmake(bazel)、git
2.1机器学习相关基本的机器学习知识,详见下面的阅读清单。训练框架:pytorch、tensorflow推理库:libtorch、onnx-runtime、tf-serving、tensorrt、mkl、mkl-dnn(one-dnn)
2.2语音相关语音信号处理:特征提取(fbank、mfcc、LPC)、3A算法,以及下面的阅读清单。工具:kaldi、openfst、srilm、sox、ffmpeg
2.3工程相关深度学习的发展,端到端方法在语音AI的各个方向都成为不可忽略的力量,在特定方向上甚至完全取代了传统的方法。方法的革新必然带来研发范式的变化。高效的训练工具是处理海量语音数据的基础,因此大规模分布式系统(CPU集群、GPU集群)的使用,训练速度的优化(分布式优化、算子实现优化,乃至算法和硬件的协同设计),是工业界语音AI开发的前提条件。而高效的部署(模型压缩、计算图优化、跨平台支持)对于实际落地也非常重要。
因此,强悍的工程能力是未来在语音AI取得成功的越来越重要的因素。
3.阅读清单3.1领域会议3.1.1旗舰会议ICASSP(InternationalConferenceonAcoustics,SpeechandSignalProcessing)是IEEESignalProcessingSociety组织的年度盛会。今年的会议于21年6月在加拿大多伦多举办(因疫情改为线上)。值得注意的是,ICASSP有相当数据的论文是与语音无关的。INTERSPEECH()是由InternationalSpeechCommunicationAssociation(ISCA)组织的年度学术会议。21年的会议将在8月底在捷克布尔诺举行。语音相关的重要进展也散见通用的AI会议(e.g.ICML、NeuriPS)。另外,语音能从研究更加活跃的CV、NLP领域汲取宝贵经验,因此,这些领域的重要会议也可以积极关注。
3.1.2其他会议ASRU(AutomaticSpeechRecognitionandUnderstandingWorkshop)是IEEESpeechandLanguageProcessingTechnicalCommittee组织的研讨会,每两年一次(和SLT交替举办)。最近一次会议会将在21年12月哥伦比亚卡塔赫纳市举办。SLT(SpokenLanguageTechnologyWorkshop)是IEEESpeechandLanguageProcessingTechnicalCommittee组织的研讨会,每两年一次(和ASRU交替举办)。最近一次是21年1月(举办地为深圳,因疫情改为线上)。3.2旗舰期刊TASLP(IEEE/ACMTransactionsonAudio,Speech,andLanguageProcessing)和大多数AI领域一样,期刊由于时效性不高,因此相对而言参考性不是太大。
3.3书籍3.3.1ML基础AndrewNg.MachineLearning(公开课).李航(12).统计学习方法(第一版).李航(19).统计学习方法(第二版).周志华(16).机器学习.ChrisBishop.(06).PatternRecognitionandMachineLearning.Goodfellowetal.(16).DeepLearning.SimonHaykinetal.(09)NeuralNetworkandLearningMachine.3.3.2语音相关DanJurafsky&JamesH.Martin(07,17).SpeechandLanguageProcessing.陈果果etal.(20).Kaldi语音识别实战.Youngetal.(06).HTKHandbook.KaldiTutorial.俞栋&邓力.(16).解析深度学习:语音识别实践.Huangetal.(01).SpokenLanguageProcessing:AGuidetoTheory,AlgorithmandSystemDevelopment.王泉.(20).声纹技术.Benestyetal.MicrophoneArraySignalProcessing.Benestyetal.DesignofCircularDifferentialMicrophoneArrays.Nayloretal.(Eds.)SpeechDereverberation.Hänsleretal.(Eds.)TopicsinAcousticEchoandNoiseControl.