- 博客(717)
- 收藏
- 关注
原创 Android Audio代码分析(2): AudioPoilicyService 启动
AudioPolicyService 所在进程frameworks/av/media/audioserver➜ audioserver git:(0111) ✗ tree.├── Android.mk├── audioserver.rc├── main_audioserver.cpp└── OWNERSint main(int argc __unused, char **argv){ android::hardware::configureRpcThreadpool(...
2021-08-05 20:18:39 2615 1
原创 Android Audio代码分析(1):IAudioPolicyService 数据结构
system/media/audio/include➜ include git:(0111) tree.└── system ├── audio-base.h ├── audio-base-utils.h ├── audio_config.h ├── audio_effect-base.h ├── audio_effect.h ├── audio_effects │├── audio_effects_conf.h │├...
2021-08-03 16:34:21 820
原创 Native Binder
system/core/include/utils/RefBase.h// This provides primarily wp<> weak pointer types and RefBase, which work// together with sp<> from <StrongPointer.h>.// sp<> (and wp<>) are a type of smart pointer that use a wel...
2021-07-26 19:22:48 263
原创 Android MediaProjection 代码分析
MediaProjection是什么MediaProjection指的是一个令牌,这个令牌授权应用一个能力:去捕捉屏幕内容和系统声音* A token granting applications the ability to capture screen contents and/or* record system audio. The exact capabilities granted depend on the type of* MediaProjection.MediaProj..
2021-07-22 17:53:24 3706 5
原创 Android AIDL生成的文件
AIDL File: ILights.aidlpackage android.hardware.light;import android.hardware.light.HwLightState;import android.hardware.light.HwLight;/*** Allows controlling logical lights/indicators, mapped to LEDs in a* hardware-specific manner by the HAL im..
2021-07-21 17:16:42 1284 2
原创 Java List
1. 包含源文件、头文件、生成静态库/动态库,依赖动态库静态库、交叉编译(编译参数的设置), 宏定义2. 测试用例基本操作CMakeLists.txt 一般和源文件在同级目录, 在 CMakeList.txt 目录下创建文件夹 build, 在 build目录下执行 cmake .., 然后执行make, 生成的结果都在build目录下。 add_library(macemc_skel SHARED macemc/rpc/skel/macemc.cc macemc/r...
2021-06-24 16:31:02 108
原创 runnable, thread, handler
runnalbe 是个啥?package java.lang;@FunctionalInterfacepublic interface Runnable { void run();}只是一个interface而已class RecordThread implements Runnable {public void startRecording() { // getMinBufferSize is a class static method audioBuf
2021-05-23 23:16:57 143
原创 PCM双声道分离为单声道
双声道的数据存储格式https://blog.csdn.net/chinabinlang/article/details/72932947有两种类型, LRLR...每个采样点交替, LLL...RRR 每个通道隔离C++的实现;为了简单,我这里先知实现一个声道的获取:unsigned char * get_oneChannel_left_from_doubleChannel(unsigned char * pDoubleChannelBuf, int nLen, int nPerSam
2021-05-22 22:44:28 846 1
原创 怎样收集唤醒词数据和得到期望的数据:Loudest Section
问题:怎样录音https://github.com/tinyMLx/open-speech-recordinghttps://github.com/petewarden/open-speech-recording问题: 如果录音3秒钟,而其中说话的部分只有约1秒钟,其他是背景音,怎样找到说话的那一秒钟对应的数据?Speech Commands: A Dataset for Limited-Vocabulary Speech Recognitionhttps://arxiv.org/pdf
2021-04-14 10:09:52 345
原创 wave格式分析
1. 怎样用VIM 16进制打开:%!xxd:%!xxd -r2. wav文件格式在文件的前44字节放置标头(header),使播放器或编辑器能够简单掌握文件的基本信息,其内容以区块(chunk)为最小单位,每一区块长度为4字节通过一个具体的文件对应看下音讯格式:小端(低地址对应低位) 0100 -> 0001 (PCM)通道数: 小端0100 -> 0001 (单通道)采样率: 小端 803e 0000 -> 00003e80 (1600...
2021-04-13 17:35:07 340
原创 tflite interpreter
https://www.tensorflow.org/lite/guide/inference怎样训练模型后进行推断验证假设输入数据为list, 假设为yes_listimport numpy as npimport tensorflow as tf# Load the TFLite model and allocate tensors.interpreter = tf.lite.Interpreter(model_path="converted_model.tflite")in.
2021-03-05 09:43:50 1439 3
原创 CMake的使用
基本功能:怎样使用:在CMakeLists.txt的目录下创建build文件夹,在build 路径 执行cmake .. (.. 表示上级目录), 然后执行make, 生成的中间文件 和 target文件都在build路径下。怎样定义target:可执行文件、静态库和动态库add_library(hello_library STATIC /SHARED (默认是static) src/Hello.cpp)add_executable(hello_binary sr...
2021-03-04 09:31:41 528 1
原创 MFCC 学习
Mel Frequency Cepstral Coefficient (MFCC) tutorialhttp://www.practicalcryptography.com/miscellaneous/machine-learning/guide-mel-frequency-cepstral-coefficients-mfccs/这篇英文文章讲的的挺好,还有对应的代码https://github.com/jameslyons/python_speech_featureshttps://en.
2021-03-02 17:26:38 344
原创 jni with gradle
相关学习资料https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/jniTOC.htmlhttps://www.baeldung.com/jnihttps://www.protechtraining.com/bookshelf/java_fundamentals_tutorial/_java_native_interface_jnihttps://wwmmyy.github.io/2017/09/21/Android%
2021-02-20 17:25:24 248 1
原创 google speech command dataset的生成
生成数据集的代码tensorflow/examples/speech_commands➜ speech_commands git:(master) ✗ lsaccuracy_utils.cc data input_data.py label_wav_test.py recognize_commands.h train.pyaccuracy_utils.h free...
2021-02-09 16:58:58 2844
转载 工具安装----Clang-format的基本使用
工具安装----Clang-format的基本使用简介ClangFormat 是一个规范代码的工具 ClangFormat 支持的语言有:C/C++/Java/JavaScript/Objective-C/Protobuf/C# ClangFormat 支持的规范有:LLVM,Google,Chromium,Mozilla 和 WebKit测试环境Ubuntu 18.04 LTS clang-format-6.0安装$ sudo apt install clang-format
2020-12-11 14:57:31 1054
原创 GDB 的使用
https://www.ibm.com/developerworks/cn/linux/sdk/gdb/index.html :使用 GDB 调试 Linux 软件https://blog.csdn.net/yinjiabin/article/details/7732931 :gdb基本命令http://www.gnu.org/software/gdb/ :GDB: The GNU Project Debugger 1 List of classes of commands:...
2020-12-06 22:51:12 140 2
原创 mace micro: init过程
include/public/micro.h 没有对应的class MaceMicroEngine.hstruct MaceMicroEngineConfig { model::NetDef *net_def_; const uint8_t *model_data_; framework::Graph *graph_; //has a graph framework::Operator **op_array_; uint8_t *tensor_mem_; const void *...
2020-11-30 12:28:13 203
原创 mace micro 代码分析: netdef 和Graph文件的生成
NetDef的内容pb文件定义message NetDef { repeated OperatorDef op = 1; repeated Argument arg = 2; repeated ConstTensor tensors = 3; optional DataType data_type = 4 [default = DT_FLOAT]; repeated InputOutputInfo input_info = 100; repeated InputOutput...
2020-11-27 17:34:01 395
原创 SoundTrigger 代码分析
目的:在ADSP上运行DNN去识别唤醒词,感觉代码看明白了,但没有具体实现,记录下大概过程,以后也许会有用。整体框架soundTriggerHALtypes.halinterface ISoundTriggerHwInterfaceInterface ISoundTriggerHwCallbackSoundTriggerHalImplstdev_load_sound_modelaudio-kernel...
2020-11-16 17:28:01 2981
原创 Android sensor睡眠唤醒相关
sensor hal log等级的设置什么个逻辑可以动态控制log等const char SENSORS_HAL_PROP_DEBUG[] = "persist.vendor.debug.sensors.hal";/* map debug property value to log_level */static const unordered_map<char, sensors_log::log_level> log_level_map = { { '0', sensors_..
2020-10-20 15:39:47 1970
原创 Android: sensor 时间戳从sensor子系统到AP android层的变化
因为_offset_ns的存在,两个时间体系的转换没有那么简单,不知offset是不是个常量,还是每次开机都会变化?开机也有可能变化?void har::handle_sns_client_event(const sns_client_event_msg_sns_client_event& pb_event){ if (pb_event.msg_id() == SNS_HAR_MSGID_SNS_DATA) { sns_std_sensor_event pb_stream...
2020-05-13 19:50:06 3212
原创 模型预测指标的意思
参考:https://blog.goodaudience.com/introduction-to-1d-convolutional-neural-networks-in-keras-for-time-sequences-3a7ff801a2cfHere is a brief recap of what those scores mean:Accuracy:The ratio betw...
2020-04-30 14:42:58 688
原创 clang-format 格式化代码
安装$ sudo apt install clang-format常用命令如下:预览规范后的代码$ clang-format main.cc直接在原文件上规范代码$ clang-format -i main.cc显示指明代码规范,默认为 LLVM$ clang-format -style=google main.cc把规范保存成文件clang-forma...
2020-04-24 18:17:11 3778
原创 libutils: 反汇编等工具
gprof: 分析性能瓶颈这个没有用过nm./hexagon-nm -C ./wire_pedometer/sns_wrist_pedometer_sensor_algo_island.o./hexagon-nm ./wire_pedometer/sns_wrist_pedometer_sensor_algo_island.o -Ssizestrings...
2020-04-21 11:35:49 533 1
原创 Andorid QCOM GPS: 代码流程
GPS基础知识http://fancyerii.github.io/2020/04/06/gps/常见术语信噪比,英文名称叫做SNR或S/N(SIGNAL-NOISE RATIO),又称为讯噪比。是指一个电子设备或者电子系统中信号与噪声的比例 , 信噪比越大此颗卫星越有效(也就是说可以定位)伪随机噪声(PRN)码: 用于表示卫星相关的信息TTFFTime to first...
2020-04-20 19:36:05 3341
原创 git: 基本概念和操作
参考https://www.cnblogs.com/kidsitcn/p/5318627.htmlhttps://www.cnblogs.com/kidsitcn/p/5319282.html
2020-04-03 19:11:30 906
原创 Nanopb在SEE中的应用
什么是nanopbnapopb是一种新的类似pb(protocol buffer)的协议吗?nanopb和pb有什么区别?nanopb的基本概念proto file是个接口描述语言,类似android中aldl, 会发现接口描述语言很多,还有yaml, 只要有对应的解析脚本把解析后的结果能集成到使用环境就行。protoco文件中样式如下,这里的1并不是对变量赋值为1,是说...
2020-03-26 12:10:33 1042
原创 android SEE HAL classes
SEE HAL 中的sensorsensor是hal最抽象的类,ssc_sensor是sensor在ssc(snapdragon sensor core)下实现的类;xxx是继承自ssc_sensor SEE环境sensor在android hal的对应部分。hal层要和SEE通信最终都是要通过 ssc_connection实现。android sensor see hal部分的代码...
2020-03-03 16:55:39 567
原创 android sensor native class
frameworks/native/libs/sensor/ classNative class initNativeCreatenativeSensorEventQueueframeworks/native/services/sensorservice/sensor data from service to clientUidPolicy 用于控制...
2020-03-02 17:51:16 295
原创 android sensor: registerListener
sensor Java层private final HashMap<SensorEventListener, SensorEventQueue> mSensorListeners = new HashMap<SensorEventListener, SensorEventQueue>();@Overrideprotected boolean ...
2020-02-26 13:14:16 1071
原创 android sensor framework: java to jni to sensorservice
SensorEventListener/*** Used for receiving notifications from the SensorManager when* there is new sensor data.*/public interface SensorEventListener { /** * Called when there is a n...
2020-02-25 22:01:16 262
原创 android sensor 是怎样获得sensorlist的
从java层到SEE层看怎样得到sesorlist的frameworks/base/services/core/java/com/android/server/power/PowerManagerService.javaSensorManager sensorManager = new SystemSensorManager(mContext, mHandler.getLooper()...
2020-02-25 08:30:44 4522
原创 android sensor 的aidl和 hidl 接口
ISensorService接口:enum { GET_SENSOR_LIST = IBinder::FIRST_CALL_TRANSACTION, CREATE_SENSOR_EVENT_CONNECTION, ENABLE_DATA_INJECTION, GET_DYNAMIC_SENSOR_LIST, CREATE_SENSOR_DIRECT_C...
2020-02-25 08:11:47 2803
原创 SEE 中的数据结构及之间的关系
sensor and sensor_instancesensor表示一个物理或者虚拟的sensor, sensor instance是具体化了一个配置如采样率数据结构sensor管理sensor instance, 使用sensor callback function(framework 实现) 调入到 sensor framework 去创建、删除sensor instance等;...
2020-02-22 20:46:25 2510
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人