语音识别技术构架

13 篇文章 2 订阅
订阅专栏

转自:https://coffee.pmcaff.com/article/1055672606603392/pmcaff?utm_source=forum&from=search

很好的一篇文章,没有任何公式,但是把语音识别的技术框架说的很清楚,适合刚接触语音识别的小伙伴看一下。我转来备份一下。

语音交互将会成为新的入口,也是各大公司务必争夺的资源之一,资源是指数据,不是技术,因为技术会开放,而有价值的有标注的数据才是制胜法宝。

所以,pm们需要了解语音识别技术的基础,总有一天你会用到,并且这一天不会太远。

我会从以下几个方面介绍语音识别:

fetch_filecf846290fcb9f703325107de65c57e25-picture

语音识别基础.png

 

 

一、 语音识别的基础概念

1. 概念

自动语音识别(Automatic Speech Recognition,ASR)技术是一种将人的语音转换为文本的技术。

这项技术被当做是可以使人与人、人与机器更顺畅交流的桥梁,已经在研究领域活跃了50多年。

2. 发展

ASR在近几年的流行,与以下几个关键领域的进步有关:

  • 摩尔定律持续有效
    使得多核处理器、通用计算图形处理器GPGPU、CPU/GPU集群等技术,为训练复杂模型提供了可能,显著降低了ASR系统的错误率。
  • 大数据时代
    借助互联网和云计算,获得了真实使用场景的大数据训练模型,使得ASR系统更具鲁棒性(健壮性、稳定性)。
  • 移动智能时代
    移动设备、可穿戴设备、智能家居设备、车载信息娱乐系统,变得越来越流行,语音交互成为新的入口。

3. 研究领域分类

根据在不同限制条件下的研究任务,产生了不同的研究领域。如图:

fetch_file50b36d84e20c7551062fd06ee5d6fbf9-picture

研究领域分类

 

4. 语音识别任务分类

根据不同任务,语音识别可分为4类:

fetch_file04a0efaab0aa2486f0a62d29c331307d-picture

任务分类

 

5. 应用

fetch_file7f93b6ed70f710d461bbd40282d5bb12-picture

语音交互作为新的入口,主要应用于上图中的两大类:帮助人与人的交流和人与机器的交流。

  • 帮助人与人的交流 HHC
    应用场景如,如翻译系统,微信沟通中的语音转文字,语音输入等功能。

    语音到语音(speech-to-speech,S2S)翻译系统,可以整合到像Skype这样的交流工具中,实现自由的远程交流。

    S2S组成模块主要是,语音识别-->机器翻译-->文字转语音,可以看到,语音识别是整个流水线中的第一环。

  • 帮助人与机器的交流 HMC
    应用场景如,语音搜索VS,个人数码助理PDA,游戏,车载信息娱乐系统等。

 

6. 对话系统

要注意的是,我们上面所说的应用场景和系统讨论,都是基于【语音对话系统】的举例。

语音识别技术只是其中关键的一环,想要组建一个完整的语音对话系统,还需要其他技术。

语音对话系统:(包含以下系统的一个或多个)
1)语音识别系统: 语音-->文字
2)语义理解系统:提取用户说话的语音信息
3)文字转语音系统:文字-->语音
4)对话管理系统:1)+ 2)+3)完成实际应用场景的沟通

fetch_fileed822d1a2866f3a3b871342750e58c36-picture

语音对话系统

二、语音识别系统

语音识别问题,其实是一个模式识别的问题。给你一段声波,机器判别是a还是b。

这个过程有两大块,一个是生成机器能理解的声音向量。第二个是通过模型算法识别这些声音向量,最终给出识别结果。

每一块中间都有很多细小的步骤,我们后面会提到。

1. 系统架构概述

下图是语音识别系统的组成结构,主要分4部分:
信号处理和特征提取、声学模型(AM)、语言模型(LM)和解码搜索部分。

fetch_filed4f7d6b58b5ab02862826c119b1d19dd-picture

语音识别系统的架构

 

左半部分可以看做是前端,用于处理音频流,从而分隔可能发声的声音片段,并将它们转换成一系列数值。

声学模型就是识别这些数值,给出识别结果。后面我们会详细解释。

右半边看做是后端,是一个专用的搜索引擎,它获取前端产生的输出,在以下三个数据库进行搜索:一个发音模型,一个语言模型,一个词典。

【发音模型】表示一种语言的发音声音 ,可通过训练来识别某个特定用户的语音模式和发音环境的特征。
【语言模型】表示一种语言的单词如何合并 。
【词典】列出该语言的大量单词 ,以及关于每个单词如何发音的信息。

 

a)信号处理和特征提取:
以音频信号为输入,通过消除噪声和信道失真对语音进行增强,将信号从时域转化到频域,并为后面的声学模型提取合适的有代表性的特征向量。

b)声学模型:
将声学和发音学的知识进行整合,以特征提取部分生成的特征为输入,并为可变长特征序列生成声学模型分数。

c)语言模型:
语言模型估计通过训练语料学习词与词之间的相互关系,来估计假设词序列的可能性,又叫语言模型分数。如果了解领域或任务相关的先验知识,语言模型的分数通常可以估计的更准确。

d)解码搜索:
综合声学模型分数与语言模型分数的结果,将总体输出分数最高的词序列当做识别结果。

2. 语音识别技术详解

看完上面的架构图,你应该有个大致的印象,知道整个语音识别是怎么回事儿了。下面我们详细说一些重要的过程。

2.1 语音识别单元

我们的语音内容,由基本的语音单元组成。选择要识别的语音单元是语音识别研究的第一步。

就是说,你要识别的结果是以什么为基础单位的?是单词还是元音字母?

语音识别单元有单词 (句) 、音节和音素三种,具体选择哪一种,根据具体任务来定,如词汇量大小、训练语音数据的多少。

fetch_fileae92b79a9a83af065fe5acf90d21aba1-picture

语音识别单元

【音素】:在汉语里,最小的语音单位是音素,是从音色的角度分出来的。

【音节】:一个音素单独存在或几个音素结合起来,叫做音节。可以从听觉上区分,汉语一般是一字一音节,少数的有两字一音节(如“花儿”)和两音节一字。

fetch_file9f6ad534e28ddfaff8433c6f6c87a23f-picture

语音识别单元

2.2 信号的数字化和预处理

接下来就要将收集到的语音转化为一系列的数值,这样机器才可以理解。

1)数字化

声音是作为波的形式传播的。将声波转换成数字包括两个步骤:采样和量化。

fetch_file5b87e304b32a267c5b8225019060c9b9-picture

为了将声波转换成数字,我们只记录声波在等距点的高度,这被称为采样(sampling)。

采样定理(Nyquist theorem)规定,从间隔的采样中完美重建原始声波——只要我们的采样频率比期望得到的最高频率快至少两倍就行。

 

fetch_file62d81428af84807ab2825a95ae4c07ee-picture

 

经过采样,我们获取了一系列的数字,这些数字才可以在机器上进行建模或计算。

我们每秒读取数千次,并把声波在该时间点的高度用一个数字记录下来。把每一秒钟所采样的数目称为采样频率或采率,单位为HZ(赫兹)。

「CD 音质」的音频是以 44.1khz(每秒 44100 个读数)进行采样的。但对于语音识别,16khz(每秒 16000 个采样)的采样率就足以覆盖人类语音的频率范围了。

 

2)采样信号预处理

这里的预处理主要指,分帧处理。
因为语音信号是不平稳的、时长变化的,如下图:

fetch_file38e5db9f8992aa9309687d73adb8731a-picture

我们把它分隔为一小段一小段(10毫秒-40毫秒)的短语音,我们认为这样的小片段是平稳的,称之为【帧】。

在每个帧上进行信号分析,称为语音的短时分析。

 

fetch_filed83a8dc163bae603211e875027d7e138-picture

图中,每帧的长度为25毫秒,每两帧之间有25-10=15毫秒的交叠。我们称为帧长25ms、帧移10ms的分帧。

帧移的事情就不详细解释了,它是为了保证语音信息的完整性。感兴趣的同学可以查一下,加窗/窗函数。

那为什么需要平缓的分帧呢?因为我们需要做傅里叶变化,它适用于分析平稳的信号。(想弄明白傅里叶变换的,之后可以参考文章末尾的链接)

人类是根据振动频率判断声音的,而以时间为横轴(时域)的波形图没有振幅描述,我们需要做傅里叶变换,将它变成以频率为横轴(频域)的振幅描述。

2.3 特征提取

特征提取就是从语音波形中提取出能反映语音特征的重要信息,去掉相对无关的信息(如背景噪声),并把这些信息转换为一组离散的参数矢量 。

1)特征提取

如何提取呢?我们经过采样,预处理,将这些数字绘制为简单的折线图,如下所示,我们得到了 20 毫秒内原始声波的大致形状:

fetch_file80d04107949da47629b752e5d71b8f8a-picture

这样的波形图对机器来说没有任何描述信息。这个波形图背后是很多不同频率的波叠加产生的。(准确的讲,它在时域上没有描述能力)

我们希望一段声纹能够给出一个人的特性,比如什么时候高,什么时候低,什么时候频率比较密集,什么时候比较平缓等等。

fetch_file1beaa222d245c3b63717c4b972cb1182-picture

 

就是我们上面所说的,用傅里叶变化来完成时域到频域的转换。

这就需要对每一帧做傅里叶变化,用特征参数MFCC得到每一帧的频谱(这个过程就是特征提取,结果用多维向量表示),最后可以总结为一个频谱图(语谱图)。

如下图所示,是“hello”的频谱图,很酷是吧~
横轴是时间,纵轴是频率。颜色越亮,表示强度越大。

fetch_file5d33855c845fbc7b05006fbff69f38d4-picture

 

2)常用的特性参数

特性提取时,我们有常用的特征参数作为提取模板,主要有两种:

  • 线性预测系数(LPC)

    LPC 的基本思想是,当前时刻的信号可以用若干个历史时刻的信号的线性组合来估计。通过使实际语音的采样值和线性预测采样值之间达到均方差最小,即可得到一组线性预测系数。

    求解LPC系数可以采用自相关法 (德宾 durbin 法) 、协方差法、格型法等快速算法。

  • 倒谱系数

    利用同态处理方法,对语音信号求离散傅立叶变换后取对数,再求反变换就可得到倒谱系数。

    其中,LPC倒谱(LPCCEP)是建立在LPC谱上的。而梅尔倒谱系数(Mel Frequency Cepstrum Coefficient, MFCC)则是基于MEL谱的。不同于LPC等通过对人的发声机理的研究而得到的声学特征,MFCC 是受人的听觉系统研究成果推动而导出的声学特征。

    简单的说,经过梅尔倒谱分析,得到的参数更符合人耳的听觉特性。

 

3)短语音识别为单词

有了上面的特征提取,每一帧都可以表述为一个多维向量,接下来就是把向量识别为文本。

这里我们需要多介绍一个概念,叫【状态】。
你可以理解为,是比音素更细致的语音单位。通常把一个音素划分成3个状态。

fetch_filea8c98f721a460e68fbaaf824b5eaff8c-picture

如上图所示,识别过程无非是:
1)把帧识别成状态(难点)。
2)把状态组合成音素。
3)把音素组合成单词。

那每个音素应该对应哪种状态呢?这就需要用到声学模型了。

2.4 声学模型

声学模型是识别系统的底层模型,其目的是提供一种计算语音的特征矢量序列和每个发音模板之间的距离的方法。

也就是说,提取到的语音特性,与某个发音之间的差距越小,越有可能是这个发音。

或者说,某帧对应哪个状态的概率最大,那这帧就属于哪个状态。这个可以用GMM(混合高斯模型,就是一种概率分布)或DNN(深度神经网络)来识别。

但这样识别出来的结果会比较乱,因为一个人讲话的速度不一样,每一帧识别出的结果可能是:....HHH_EE_LL__LLLL__OOO.....,如下图:

fetch_fileaab0b96e9e8665e8a80d9d2bf16989c7-picture

 

这个问题可以用DTW(动态时间规整)或HMM(隐马尔科夫模型)或CTC(改进的RNN模型)来对齐识别结果,知道单词从哪里开始,从哪里结束,哪些内容是重复的没有必要的。

 

1)常用的声学建模方法包含以下三种:

  • 基于模式匹配的动态时间规整法(DTW);
  • 隐马尔可夫模型法(HMM);
  • 基于人工神经网络识别法(ANN);

在过去,主流的语音识别系统通常使用梅尔倒谱系数(Mel-Frequency Cepstral Coefficient, MFCC)或者线性感知预测(Perceptual Linear Prediction, PLP)作为特征,使用混合高斯模型-隐马尔科夫模型(GMM-HMM)作为声学模型。

近些年,分层鉴别模型比如DNN,变得可行起来,比如上下文相关的深度神经网络-隐马尔可夫模型(context-dependent DNN-HMM,CD-DNN-HMM)就比传统的GMM-HMM表现要好得多。

如下图,你可以清晰的看到被替换的部分。

 

fetch_file6fa639ac7be73a4fc1ec61d6fad36527-picture

2)主要问题:

我们要了解的是,声学模型存在2个问题:
1. 特征向量序列的可变长;
每个人说同一个单词的时间长度都不一样,声学模型要能从不同的时间长度的语音信号中识别出是同一个单词。

解决方法就是DTW(动态时间规整)、 HMM(隐马尔可夫模型)。
2. 音频信号的丰富变化性;
如说话人的性别,健康状况,紧张程度,说话风格、语速,环境噪音,周围人声,信道扭曲,方言差异,非母语口音等。

3)HMM 声学建模:

对语音识别系统而言,HMM 的输出值通常就是各个帧的声学特征 。 为了降低模型的复杂度,通常 HMM 模型有两个假设前提,一是内部状态的转移只与上一状态有关,一是输出值只与当前状态或当前状态转移有关。除了这两个假设外,HMM 模型还存在着一些理论上的假设,其中之一就是,它假设语音是一个严格的马尔科夫过程 。

2.5 语言模型

如何将识别出的单词,组成有逻辑的句子,如何识别出正确的有歧义的单词,这些就用到语言模型了。

由于语音信号的时变性、噪声和其它一些不稳定因素,单纯靠声学模型无法达到较高的语音识别的准确率。在人类语言中,每一句话的单词直接有密切的联系,这些单词层面的信息可以减少声学模型上的搜索范围,有效地提高识别的准确性,要完成这项任务语言模型是必不可少的,它提供了语言中词之间的上下文信息以及语义信息。

随着统计语言处理方法的发展,统计语言模型成为语音识别中语言处理的主流技术,其中统计语言模型有很多种,如N-Gram语言模型、马尔可夫N元模型(Markov N-gram)、指数模型( Exponential Models)、决策树模型(Decision Tree Models)等。而N元语言模型是最常被使用的统计语言模型,特别是二元语言模型(bigram)、三元语言模型(trigram)。

2.6 字典

字典是存放所有单词的发音的词典,它的作用是用来连接声学模型和语言模型的。

识别出音素,利用字典,就可以查出单词了。

例如,一个句子可以分成若干个单词相连接,每个单词通过查询发音词典得到该单词发音的音素序列。相邻单词的转移概率可以通过语言模型获得,音素的概率模型可以通过声学模型获得。从而生成了这句话的一个概率模型。

2.7 解码器

解码器的作用就是将上述训练好的模型按照一定的规则组合起来,将新输入的语音识别出来。

 

三、 语音识别评估标准

在语音识别中,常用的评估标准为词错误率(Word Error Rate,WER)。

我们上面讲了帧向量识别为单词,需要用声学模型。因为识别出来的整个词序列是混乱的,需要进行替换、删除、插入某些词,使得次序列有序完整。

WER就是反映上述过程的标准,能直接反映识别系统声学模型的性能,也是其他评估指标如句错误率SER的基础。

传统的词错误率评估算法在语音识别中存在三种典型的词错误:
1)替换错误(Substitution)
在识别结果中,正确的词被错误的词代替;
2)删除错误(Deletion)
在识别结果中,丢失了正确的词;
3)插入错误(Insertion)
在识别结果中,增加了一个多余的词;

所以,词错误率为:

fetch_fileb9a9e0eeef0f8d799d4bc7a7786ed8e3-picture

S 为替代错误词数,D 为删除错误词数,I 为插入错误词数。T为参照句子中的所有词数。
需要注意的是,因为有插入词,所以WER有可能大于100%。

 

 

以上。

 

--- 

 

参考文章:

《实用语音识别基础》 王炳锡,2005
《解析深度学习-语音识别实践》邓力,2016

语音识别(Speech Recognition) 原理与代码实例讲解
程序员光剑
08-04 685
语音识别(Speech Recognition) - 原理与代码实例讲解 1.背景介绍 1.1 什么是语音识别 语音识别(Speech Recognition)是一种将人类语音转换为相应文本或命令的技术,广
语音识别的架构
简言
07-27 5003
语音识别的架构 语音识别系统语音识别系统是一个先编码后解码的过程,主要包括语音信号的采样和预处理部分、特征参数提取部分、语音识别核心部分以及语音识别后处理部分。 可以看下方的架构图。 Speech,原始语音信号 Feature Extraction,特征抽取,由原始的语音得到语音向量。 Acoustic Model、Language Model、Pronunciation Dict...
语音识别框架系统
01-27
语音识别,C++代码;
语音识别——语言模型
weixin_43142450的博客
12-09 7158
本博客主要是摘写洪青阳教授的《语言识别-原理与应用》的笔记,不足之处还请谅解。 语音识别为:根据输入的观察值序列O,找到最可能的词序列W^\hat{W}W^。按照贝叶斯准则,识别任务可做如下转化: W^=argmax⁡W P(W∣O)=arg⁡ max⁡P(W)P(O∣W)P(O) \hat{W}= {\underset {W}{\operatorname {arg max} }}\,P(W|O)=\arg\,\max\frac{P(W)P(O|W)}{P(O)} W^=Wargmax​P(W∣O)=arg
【语音助手】语音识别框架的简单介绍
最新发布
似水流年
01-16 2233
这些TTS框架和服务可以满足不同的需求,有的适合在云端部署,有的提供丰富的音色选择,有的适合定制和在本地部署。这些框架专注于在资源受限的嵌入式设备上运行,并提供了适用于边缘计算场景的语音识别能力。: Hugging Face 的 Transformers 库提供了预训练的语言模型(如BERT、GPT等)的实现,并提供了易用的API和各种模型的预训练权重。: SpaCy 是一个用于自然语言处理的现代化库,提供了高效的文本处理工具和预训练的模型,在命名实体识别(NER)、词性标注、依存句法分析等方面表现出色。
强大的端到端语音识别框架—RNN-T
bbbeoy的专栏
08-31 4270
前言: 基于联结时序分类(CTC)的声学模型不再需要对训练的音频序列和文本序列进行强制对齐,实际上已经初步具备了端到端的声学模型建模能力。但是CTC模型进行声学建模存在着两个严重的瓶颈,一是缺乏语言模型建模能力,不能整合语言模型进行联合优化,二是不能建模模型输出之间的依赖关系。RNN-Transducer针对CTC的不足,进行了改进,使得模型具有了端到端联合优化、具有语言建模能力、便于实现Online语音识别等突出的优点, 更加适合语音任务。 RNN-T介绍: RNN-Transducer模型实际上是
1-GMM-HMMs语音识别系统-框架
vikYao的博客
04-20 2114
本文主要对基于GMM/HMMs的传统语音识别系统做一个整体介绍。
人工智能语音识别技术在铁路系统应用.pdf
07-10
本文从人工智能语音识别技术的基本概念、铁路系统中的具体应用、技术架构、研究内容和功能实现等多个维度进行详细说明。 首先,人工智能语音识别技术是人工智能领域的关键技术之一,它涉及声学、自然语言处理、数字...
语音识别技术白皮书-12发布_V1.0.2_语音识别ASR_
09-29
语音识别技术白皮书-12发布_V1.0.2》是针对自主开发的语音识别系统(ASR:Automatic Speech Recognition)的一份详细技术文档。这份文档旨在揭示该系统的特性和功能,为相关领域的开发人员、算法工程师、产品经理...
1190c手机语音识别技术的设计与实现 1
08-03
手机语音识别技术是近年来随着移动通信和人工智能技术的发展而逐渐兴起的一种关键技术,它使得用户可以通过语音指令与手机进行交互,极大地提升了人机交互的便利性和效率。本文将深入探讨这一领域的核心技术和实施...
SpeakEasy:Kinect 语音识别框架
07-14
说容易 有关当前文档,请阅读: 执照 我还没有决定我将根据什么许可这个项目。 现在我要说的是,我仅出于法律原因保留所有权利。 只要您不出售代码所涉及的内容,我选择的许可将最喜欢免费使用,否则只需与我联系以解决问题。 一旦我正式添加适当的许可,这将更加清楚。 和往常一样,如果你使用它,请参考我的作品。
Python-该系统实现了基于深度框架语音识别中的声学模型和语言模型建模
08-10
该系统实现了基于深度框架语音识别中的声学模型和语言模型建模,其中声学模型包括CNN-CTC、GRU-CTC、CNN-RNN-CTC,语言模型包含transformer、CBHG,数据集包含stc、primewords、Aishell、thchs30四个数据集。
关于语音识别算法及模型
11-29
很好的语音识别模型及算法,有DTW,有HMM,有GNN,还有NN。
人工智能-语音识别-英语口语学习中的语音识别技术.pdf
06-28
在本文中,我们将详细介绍语音识别技术在英语口语学习中的应用,包括语音识别技术的原理、语音识别系统的架构、语音识别技术在英语口语学习中的应用、语音评估和错误更正算法等。 语音识别技术的原理是基于语音信号...
语音识别系统结构
Zemun's note
03-08 1917
语音识别系统结构 语音 信号处理 根据人耳的听觉感知特点,抽取语音中最重要的特征,将语音信号转换为特征矢量 序列 声学特征 线性预测编码 Linear Predictive Coding,LPC 梅尔频率倒谱系数 Mel-frequency Cepstrum Coefficients,MFCC 梅尔标度滤波器组 Mel-scale Filter Bank,FBank 线性感知预测(Perceptual Linear Prediction, PLP) 解码器 decoder是根据字典、声学模型和语音模型,将输
语音识别框架
热门推荐
yang_daxia的博客
11-07 1万+
一、语音识别框架 传统理论重点研究声学模型,发音字典不用关心,语言模型一般用n-gram 预处理:1. 首尾端的静音切除,降低对后续步骤造成的干扰,静音切除的操作一般称为VAD。  2. 声音分帧,也就是把声音切开成一小段一小段,每小段称为一帧,使用移动窗函数来实现,不是简单的切开,各帧之间一般是有交叠的。 特征提取:主要算法有线性预测倒谱系数(LPCC)和Mel 倒谱系数(MFCC)...
Python 语音识别框架
houyanhua1的专栏
09-28 9582
from win32com.client import constants import os import win32com.client import pythoncom speaker = win32com.client.Dispatch("SAPI.SPVOICE") class SpeechRecognition: def __init__(self, wordsToAdd
语音识别框架语音识别框架之wenet
的博客
04-01 9442
环境配置 https://github.com/wenet-e2e/wenet git clone https://github.com/wenet-e2e/wenet.git # 克隆源码 AIShell 教程 我们提供了example/aishell/s0/run.sh关于 aishell-1 数据的配方 配方很简单,我们建议您手动逐个运行每个阶段并检查结果以了解整个过程。 cd example/aishell/s0 bash run.sh --stage -1 --stop-stage -1 bas
语音识别开源框架
Swaggie的笔记博客
06-19 2304
A Transformer sequence-to-sequence model is trained on various speech processing tasks, including multilingual speech recognition, speech translation, spoken language identification, and voice activity detection. These tasks are jointly represented as a se
写文章

热门文章

  • 卷积(convolution)和互相关(cross-correlation) 51532
  • OpenCV 标定和畸变校正 35562
  • 编译pycaffe错误 --#error This file was generated by a newer version of protoc 23145
  • C语言运算中的数据类型自动转换原则 22671
  • 多元函数极值 二次型 Hessian矩阵 正定矩形 二阶泰勒展开 19522

分类专栏

  • C++ 1篇
  • C语言基础 13篇
  • 深度学习 40篇
  • 算法 2篇
  • OpenCV 4篇
  • Linux 5篇
  • 语音识别 13篇
  • 计算机体系结构 2篇
  • 数据结构与算法 3篇

最新评论

  • depthwise conv 和 pointwise conv

    耐心的等待5283: 非常简洁明了!通俗易懂,表达清晰

  • depthwise conv 和 pointwise conv

    Seabiscuit.: 感谢,通俗易懂。明白了。表情包

  • OpenCV 标定和畸变校正

    平平无奇的码手: 显示打不开default.xml文件啊

  • 语音识别开源项目汇总

    胖多鱼: 谢谢分享

  • 理解卷积神经网络中的通道 channel

    Sheng_Happiness: 楼主你好,我是小白,我想问一下那个4*4是怎么的来的呢?

大家在看

  • HTML基础和常用标签 1049
  • 输出第k小的数
  • 【亲测可用】视频编辑软件Adobe Premiere(Pr2024)软件下载安装(附win/mac安装包)
  • 算法-回溯
  • 电脑串口和手机蓝牙BLE串口数据包通信调试工具 451

最新文章

  • C++ 11中的右值引用
  • 语音识别token passing
  • 二叉树遍历
2021年6篇
2020年5篇
2019年9篇
2018年40篇
2017年18篇
2014年6篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码西夏区网站网络营销推广优化租赁行业网站优化传播怀化网站优化营商工厂网站优化怎么做问答类网站如何做优化衡阳网站搜索优化方案杭州网站优化咨询温州企业网站排名优化机构网站关键词优化策略广西百度优化网站运营滨州网站优化收费多少仪征市优化网站哪家便宜网站优化六要点惠州网站优化是怎么做的福建测量网站优化价格对比武汉网站优化排名虞城专业网站优化推广哪家好网站导航优化注意事项网站为什么要优化绥化正规的企业网站优化辽宁电子网站优化出厂价格网站资讯优化怎么查询网站是哪家优化的网站怎么优化诊疗火17星余姚网站综合优化wp网站关键词优化嘉兴网站优化排网络网站优化公司企业seo网站优化安阳网站快照优化歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化