audio_element:

开发基于ADF的程序软件最基本的模块就是audio_element对象。所有的编码、解码、过滤、输入流、输出流实际上都是audio_element。(这个是官方的文件我翻译过来的,讲了个什么玩意我也搞不明白,反正就是说audio_element很重要,是玩ADF的最普遍存在)

ADF的API就是用来执行audio_element的;

Element的通用功能就是从input获得数据,然后处理数据,然后输出到下一级Element;(这个地方输出到下一级element是我根据语境猜测的,不知道对不对,反正人家英文就说输出到next,没有具体说输出给谁)。每个Element就像一个单独的任务;为了在数据的全周期(包括输入、处理、输出)上实现完全控制,audio_element提供了在数据周期各个阶段的回调函数。回调函数的类型包括:打开、处理、关闭、销毁、读写,这些回调函数都可以在audio_element_cfg_t中找到;有些特别的Element甚至用到了所有的可用的回调函数,比如:MP3_Decoder就采用了打开、处理、关闭、销毁等等回调函数;

audio_element的类型都在audio_common.h头文件中audio_element_type_t这个枚举变量中包括了;

Every decoder, encoder, filter, input stream, or output stream is in fact an Audio Element(感觉这句话比较形象,直接粘贴过来),翻译:实际上编码器、解码器、过滤器、输入流、输出流实际上都是音频元素;

audio_pipeline:

audio_pipeline可以将一组audio_element组合到一起,用户是用audio_pipeline的形式来处理数据而不是用单个的audio_element。每个audio_element都连接了一个环形缓冲区。audio_pipeline也负责处理从audio_element到application的信息传递;

Event_Interface

在同一个pipeline里面的audio_elenment之间的交流是通过Event_Interface的API实现的;这些API建立在free-rtos队列的基础上;用listeners监听数据,用回调函数通知这些数据信息;

audio stream:

audio_element把数据引进来,然后处理,最后发出去。这整个的过程就叫做audio_stream。audio_stream类型如下:

举例:用结构体来定义audio_stream的类型,比如I2S stream就用i2s_stream_dfg_t来定义,还需要audio_stream_type_t配合才能完成定义;

Codecs这些都是解码器:

audio_processing:

ADF提供了一些处理音频的API:

Downmix:把两条音频组合到一起;

Equalizer:均衡器(我也没看懂);

resample filter: 改变音频的频率和单双通道转换;

Sonic:处理音频毛刺和速度;

services:

ADF提供了services用于语音硬件和服务器的交互,或者和外界蓝牙的交互;

Speech Recogniton:

唤醒词词库加上语音识别接口可以识别唤醒命令。大多数唤醒命令是中文的,有一个英文唤醒命令是:Alexa

speech recognition 包括自主语音识别,比如:voice activity detection 和 speech recording engine.

esp-adf Element PipeLine的更多相关文章

  1. template package (godoc 翻译)

    template 包 概述(Overview) template 包实现了数据驱动模板用于生成文本输出. 要生成HTML输出,请参阅html/template包,它具有与此包相同的接口,但会自动保护H ...

  2. 一文了解Python的线程

    问题 什么是线程? 如何创建.执行线程? 如何使用线程池ThreadPoolExecutor? 如何避免资源竞争问题? 如何使用Python中线程模块threading提供的常用工具? 目录 1. 什 ...

  3. go标准库的学习-text/template

    参考:https://studygolang.com/pkgdoc 导入方式: import "text/template" template包实现了数据驱动的用于生成文本输出的模 ...

  4. Golang 模板

    最近又尝试了一下 Golang 的 Template,发现一般功能都满足了,而且语法也相对比较简单,所以稍作总结.在 Go语言中,模板有 text/template 和 html/template 两 ...

  5. Package template (html/template) ... Types HTML, JS, URL, and others from content.go can carry safe content that is exempted from escaping. ... (*Template) Funcs ..

    https://godoc.org/text/template GoDoc Home About Go: text/templateIndex | Examples | Files | Directo ...

  6. Azure Data Factory(三)集成 Azure Devops 实现CI/CD

    一,引言 由于上一节文章内容过长,无法分享Azure Data Factory 的持续集成,持续发布.今天将着重介绍一下在使用 Azure DevOps Pipeline 发布,自动进行持续集成,并且 ...

  7. ADF 第八篇:传递参数(Pipeline的Parameter和Variable,Activity的output)和应用表达式

    Azure Data Factory传递参数的方式主要有两种,通过Pipeline的Parameter和Variable来传递参数,通过Activity的输出来传递参数.要在Activity中引用Pa ...

  8. mongoDB之Pipeline Aggregation Stages

    原文链接:https://docs.mongodb.com/manual/reference/operator/aggregation-pipeline/ 管道聚合 $project Reshapes ...

  9. A trip through the Graphics Pipeline 2011_12 Tessellation

    Welcome back! This time, we’ll look into what is perhaps the “poster boy” feature introduced with th ...

随机推荐

  1. 简单说一下UWP中的JumpList

    在Windows10的10856这个版本中,微软为桌面版提供了一组新的应用交互方式,磁贴和Toast通知的个性化都有了一定的改善.针对磁贴方面,微软为我们提供了一组新的API来扩充我们对应用的交互方式 ...

  2. 百度网盘满速下载器:pandownload

    http://pandownload.com/index.html 作者提示:1.软件使用 C++ 编写2.大文件需要等待一段时间才会有下载速度3.文件名含有特殊字符可能会下载出错,请重命名再下载4. ...

  3. CSS图片两端对齐,自适应列表布局末行对齐修复实例页面

    写在前面 前端开发,图片两端对齐,是十分常见的,也是十分痛苦的,我试过好多方法,通过整理,认为下面还是比较靠谱的,在实践中大家可以试试,欢迎一起学习,一起进步 HTML代码 HTML代码非常简单,用的 ...

  4. python爬虫入门---第一篇:获取某一网页所有超链接

    这是一个通过使用requests和BeautifulSoup库,简单爬取网站的所有超链接的小爬虫.有任何问题欢迎留言讨论. import requests from bs4 import Beauti ...

  5. 畅通工程续(HDU 1874)附上超详细源代码

    Problem Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行 ...

  6. FullCalendar:eventColor,eventBackgroundColor, eventBorderColor, and eventTextColor

    <!DOCTYPE html> <html> <head> <meta charset='utf-8' /> <title>背景色設定< ...

  7. vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效解决方法

    我要实现的功能是在上传文件之前校验是否表格中存在重复的数据,有的话,需要弹窗提示是否覆盖,确认之后继续上传,取消之后,就不再上传. 项目中用的element-ui是V1.4.3 <el-uplo ...

  8. docker 安装 gitlab

    基于Docker部署GitLab环境搭建 建议虚拟机内存2G以上 1.下载镜像文件 docker pull beginor/gitlab-ce:11.0.1-ce.0 注意:一定要配置阿里云的加速镜像 ...

  9. 给你一个全自动的屏幕适配方案(基于SW方案)!—— 解放你和UI的双手

    Calces系列相关文章:Calces自动实现Android组件化模块构建 前言 屏幕适配一直是移动端开发热议的问题,但是适配方案往往在实际开发的时候会和UI提供的设计稿冲突.本文主要是基于官方推荐的 ...

  10. 如何用vmware workstation来做虚拟化实验

    前言 以前做用vmare只是简单的实验,但是随着现在虚拟化的兴起,我们的开始要开始虚拟化的实验了. 我们看到有些windows 2012的书上面说用hyper-v来实验,但是hyper-v只能做一些列 ...