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. canvas-3radialGradient.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Python 简单的多线程聊天

    # client 端 import socket ip_port = ('127.0.0.1', 8091) sk = socket.socket() sk.connect(ip_port) prin ...

  3. React中props

    今天让我们开启新的篇章好吧,来搞一搞React,以下所有操作都是我个人的一些理解,如果有错吴还请指出,想要看更全的可以去React官网可能一下子好吧 昨天按摩没到位,导致今天身体不太行,撸码千万别苦了 ...

  4. 【代码笔记】Web-JavaScript-JavaScript语句

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  5. php获取数据库中数据

    <?php header("Content-type:text/html;charset=utf-8");//字符编码设置 $servername = "local ...

  6. CloudSim——云计算仿真软件概述

    CloudSim是由澳大利亚墨尔本大学的网格实验室和Gridbus项目宣布推出的云计算仿真软件. CloudSim是做什么的呢?可以简单理解为一个帮助研究.开发.测试的工具,如虚拟机资源分配算法.节能 ...

  7. 性能测试 Apache参数配置与性能调优

    Apache性能调优 by:授客 QQ:1033553122 环境: Apache 2.4 1.选择合适的MPM(Multi -Processing Modules, 多处理模块) Unix/Linu ...

  8. SoapUI SoapUI测试WebService协议接口简介

    SoapUI测试WebService协议接口简介 by:授客 QQ:1033553122 1. 创建项目,入口:File -> New SOAP Project,或者右键默认项目Project- ...

  9. selenium 之百度搜索,结果列表翻页查询

    selenium之百度搜索,结果列表翻页查询 by:授客 QQ:1033553122 实例:百度搜索,结果列表翻页查询 解决问题:解决selenium driver获取web页面元素时,元素过期问题 ...

  10. mac挂载分区包括EFI 或者任何隐藏分区

    1.mac终端下的diskutil命令是用来操作磁盘的 diskutil list #显示当前pc所有的磁盘 2.例如我们要挂载u盘中的efi分区 ,确定你的efi分区的 identified 我的是 ...