大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生. 智能语音交互市场近年来发展迅速,其典型的应用之一智能音箱产品如今已走入千家万户,深受大家喜爱.智能音箱产品的核心就是语音处理,包括音频采集.语音识别(ASR).自然语言处理(NLP).文语合成(TTS).音频播放五大部分.目前除了音频采集和播放必须在嵌入式端实现外,其余三部分一般都在云端处理(嵌入式端通过有线(USB)或无线(Wifi/BLE)将音频数据发送到云端).痞子衡对语音处理一…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生之环境搭建. 在写Jays-PySPEECH时需要先搭好开发环境,下表列出了开发过程中会用到的所有软件/工具包: 一.涉及工具列表 工具 功能 下载地址 Python 2.7.14 Python官方包(解释器) https://www.python.org/ PyAudio 0.2.11 跨平台开源Audio I/O库 PortAudio 的Python封装 http://people.cs…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生之音频显示实现. 音频显示是Jays-PySPEECH的主要功能,Jays-PySPEECH借助的是Matplotlib以及NumPy来实现的音频显示功能,今天痞子衡为大家介绍音频显示在Jays-PySPEECH中是如何实现的. 一.SciPy工具集 SciPy是一套Python科学计算相关的工具集,其本身也是一个Python库,这个工具集主要包含以下6大Python库,Jays-PySPE…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生之语音识别实现. 语音识别是Jays-PySPEECH的核心功能,Jays-PySPEECH借助的是SpeechRecognition系统以及CMU Sphinx引擎来实现的语音识别功能,今天痞子衡为大家介绍语音识别在Jays-PySPEECH中是如何实现的. 一.SpeechRecognition系统简介 SpeechRecognition是一套基于python实现语音识别的系统,该系统的…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生之文语合成实现. 文语合成是Jays-PySPEECH的核心功能,Jays-PySPEECH借助的是pyttsx3以及eSpeak引擎来实现的文语合成功能,今天痞子衡为大家介绍文语合成在Jays-PySPEECH中是如何实现的. 一.pyttsx3简介 pyttsx3是一套基于实现SAPI5文语合成引擎的Python封装库,该库的设计者为Natesh M Bhat,该库其实是 pyTTS 和…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具pzh-py-speech诞生之音频录播实现. 音频录播是pzh-py-speech的主要功能,pzh-py-speech借助的是Python自带wave库以及第三方PyAudio库来实现的音频播放和录制功能,今天痞子衡为大家介绍音频录播在pzh-py-speech中是如何实现的. 一.wave简介 wave是python标准库,其可以实现wav音频文件的读写,并且能解析wav音频的参数.pzh-py-speech借助w…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具pzh-py-speech诞生之界面构建. 之前痞子衡设计过一个串口调试助手pzh-py-com,也专门写过一篇关于其界面构建的文章 <串口调试工具pzh-com诞生记(2)- 界面构建>,今天咱们来构建pzh-py-speech的界面过程与pzh-py-com构建步骤类似,也是分四步:界面设计简图.界面设计wxPython组件图.在wxFormBuilder里创作.使用生成的Python代码.为了突出重点,痞子衡只讲…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生之界面构建. 一个软件的UI界面是非常重要的,这是软件与用户交互的接口,软件功能即使再强大,但如果没有清晰的UI界面,那也发挥不出软件的功能,使得用户体会不到软件的优势.今天痞子衡给大家介绍Jays-PyCOM的界面构建过程. 一.界面设计简图 在真正进入代码设计Jays-PyCOM界面前,首先应该在纸上画一个界面草图,确定Jays-PyCOM界面应该有哪些元素构成,这些元素分别位于界面上什么位置…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PyQt GUI构建工具Qt Designer. 痞子衡开博客至今已有好几年,一直以嵌入式开发相关主题的文章为主线,偶尔穿插一些其他技术或工具的介绍,前段时间因为要做一个跟恩智浦MCU启动相关的上位机工具 NXP-MCUBootUtility,网上搜索对比了几个Python下的GUI框架,最终选择了wxPython这个成熟稳定的GUI库,从而接触到wxFormBuilder这个配套wxPython使用的GUI构建工具.苦于网上关于该…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是wxPython GUI构建工具wxFormBuilder. 一.手工代码布局GUI界面的烦恼 如果你曾经设计过上位机软件GUI界面,初始阶段一定是纯手工代码布局GUI界面上的各个控件,相信你肯定遇到过如下烦恼: 控件类型较难找:UI界面里有很多控件类型,纯手工写代码需要翻看文档一个个去查找这些控件的名字与用法. 尺寸位置难调整:如果界面上已经布了多个控件,想要整体去调整这些控件的尺寸与位置是一件头疼的事. 效果查看不实时:每新添加…
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生. 串口调试助手是嵌入式开发里非常常用的小工具,市面上有非常多流行的串口调试工具,比如TeraTerm.SecureCRT.AccessPort.sscom等,其中有些工具功能全面且强大,可以满足大部分串口调试需求,但如果有的时候你有一些特殊定制化的需求,这些工具不一定能满足你的需求,这时候你需要写一个属于你自己的串口调试助手,本系列痞子衡会教大家从零开始写一个基于Python的串口调试工具,这…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生之环境搭建. 在写Jays-PyCOM时需要先搭好开发和调试环境,下表列出了开发过程中会用到的所有软件/工具包: 一.涉及工具列表 工具 功能 下载地址 Python 2.7.14 Python官方包(解释器) https://www.python.org/ pySerial 3.4 Serial Port访问的Python封装库 https://pypi.org/project/pyserial…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生之串口功能实现. 串口调试助手是最核心的当然是串口数据收发与显示的功能,Jays-PyCOM借助的是pySerial库实现串口收发功能,今天痞子衡为大家介绍pySerial是如何在Jays-PyCOM发挥功能的. 一.pySerial简介 pySerial是一套基于python实现serial port访问的库,该库的设计者为Chris Liechti,该库从2001年开始推出,一直持续更新至今,…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生之软件优化. 前面痞子衡已经初步实现了Jays-PyCOM的串口功能,并且通过了最基本的测试,但目前的Jays-PyCOM相比市面上流行的串口调试工具还差得很远,有很大的优化空间.优化可以从两方面进行:一.是功能上的优化,可以添加更多实用的功能:二.是界面效果上的优化,可以增加一些界面动画效果或者重新配色美化界面.下面痞子衡从这两方面分别为Jays-PyCOM做一些简单的优化: 一.功能优化 1.…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生之打包发布. 经过上一篇软件优化之后,Jays-PyCOM已经初长成,该到了出去历练的时候了,只有经历广大群众考验过的软件才是合格的软件.痞子衡在开发Jays-PyCOM时本地安装了很多软件:Python.pySerial.wxPython等,这些软件是Jays-PyCOM运行的基础,但如果将来别人想用Jays-PyCOM,是不是也需要安装这些软件呢?答案当然不是,如果是的话,Jays-PyCOM…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是嵌入式里串口(UART)自动波特率识别程序设计与实现. 串口(UART)是嵌入式里最基础最常用也最简单的一种通讯(数据传输)方式,可以说是工程师入门通讯领域的启蒙老师,同时串口打印也是嵌入式项目里非常经典的调试与交互方式. 最精简的串口仅使用两根单向信号线:TXD.RXD,这两根信号线是独立工作的,因此数据收发既可分开也可同时进行,这就是所谓的全双工.串口没有主从机概念,并且没有专门的时钟信号 SCK,所以串口通信也属于异步传输.…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是在串口波特率识别实例里逐步展示i.MXRT上提升代码执行性能的十八般武艺. 恩智浦 MCU SE 团队近期一直在加班加点赶 SBL 项目(解决客户产品 OTA 需求),这个项目里集成了 ISP 本地升级(UART/USB)功能,其中 UART 口下载升级实现里加入了自动波特率识别支持,具体识别方法见 <串口(UART)自动波特率识别程序设计与实现(中断)> 一文,这一套 ISP 代码其实是移植于 i.MXRT Flashloade…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT系列ROM中的FlexSPI驱动API实现IAP. 痞子衡的技术交流群里经常有群友提问: i.MXRT中的FlexSPI驱动API到底怎么用啊?这个问题已经出现过好几次了,本来痞子衡不打算专门为这个写文章的,因为这部分内容在芯片手册System Boot章节里的最后一节ROM APIs里其实介绍得非常详细了,但是既然还是有不少朋友在问这个,看起来手册里的内容藏得有点深,这么好的东西被埋没太可惜了,那么今天痞子衡就跟大家再…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的性能. 在前面的文章 i.MXRT微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2017年推出的新一代跨界微控制器i.MX RT系列,该系列第一款芯片i.MXRT105x性能完爆同时期市面上所有的微控制器,官方公布的CoreMark跑分高达3020,有人可能不明白这个数字意味着什么,作为对比,我们再来看看意法半导体最流行的芯片STM32F103RB,它的CoreMark是108(此处应该有类似M…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Serial Downloader模式. 在上一篇文章 Boot配置(BOOT Pin, eFUSE) 里痞子衡为大家介绍了i.MXRT Boot的行为配置,其中第一节里讲了Boot有三种行为模式:Serial Downloader.Boot From Fuses.Internal Boot,后两种是核心的加载启动行为模式,而Serial Downloder看起来是个次要的模式,那么Serial D…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是微控制器CPU性能测试基准CoreMark. 在嵌入式系统行业用于评价CPU性能指标的标准主要有三种:Dhrystone.MIPS.CoreMark,其中CoreMark是一种新兴流行的嵌入式系统处理器测试基准,被认为是比Dhrystone和MIPS更具有实际价值的测试基准.今天痞子衡就和大家详细聊一聊CoreMark. 一.EEMBC协会 在讲CoreMark之前,必须要先提EEMBC(Embedded Microprocesso…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式调试里的接口标准JTAG. 在结束<ARM Cortex-M文件那些事>系列文章之后,痞子衡休整了一小段时间,但是讲课的心完全停不下来啊,所以忍不住新开了一个系列文章,叫<ARM Cortex-M调试那些事>,本文是这个系列文章的第一篇,欢迎各位嵌入式朋友前来围观捧场~~~ 嵌入式开发中,大家免不了需要仿真调试代码,尤其是当应用工程功能逻辑复杂到一定程度时,免不了在写代码时会引入一些逻辑bug,仅靠代码审查有时候并…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式里数据差错控制技术-奇偶校验. 在系列第一篇文章里,痞子衡给大家介绍了最简单的校验法-重复校验,该校验法实现简单,检错纠错能力都还不错,但传输效率实在是不高,在效率至上的大背景下,这种方法是不能容忍的.今天痞子衡继续给大家介绍另一种也非常简单但效率较高的校验法-即奇偶校验法. 一.奇偶校验法基本原理 1.1 校验依据 奇偶校验法的校验依据就是判断一次传输的一组二进制数据中bit "1"的奇偶性(奇数个还是偶数个)在传输…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是关于开源软件协议基本知识. 牛顿曾说过:"如果我比别人看得更远,那是因为我站在巨人的肩上".在软件开发中如果说也存在巨人的肩膀让我们站,我想这个巨人应该就是开源软件.一个优秀的软件开发人员应该能够善于学习和利用开源软件来加速自己的开发,而为了正确地使用开源软件,我们必须要了解开源软件协议,今天我们就来聊一聊开源软件协议这个话题. 1.开源软件是什么? 所谓"开源软件"(open-source softwa…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的性能. 在前面的文章 i.MXRTxxx微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2018年推出的全新跨界微控制器i.MX RTxxx系列,该系列第一款芯片i.MXRT600搭载一颗Cortex-M33控制内核和一颗Tensilica HiFi4 DSP处理内核,该芯片可在超低功耗边缘处理应用中实现高效本地音频预处理.沉浸式3D音频播放和支持语音的体验.今天痞子衡先为大家实测一下其Cor…
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是机器视觉模块OpenMV-RT初体验. 近些年机器视觉应用一直是个很火的方向,想象一下机器如果能长上"眼睛",是不是就可以做一些人类才能做的事情,因此机器视觉是人工智能实现的一个重要基础.痞子衡当年硕士毕业论文课题就是工业相机图像处理相关的,算是机器视觉系统的前端核心.遥想十年以前,想要从事机器视觉系统的开发一直是比较复杂的,需要开发者有相当扎实的嵌入式开发基础,而现在一些机器视觉相关研究小组为了能让开发者把更多重心放在…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的Serial ISP模式. 在上一篇文章 Boot配置(ISP Pin, OTP) 里痞子衡为大家介绍了i.MXRTxxx Boot的行为配置,其中第1.2节里讲了Boot有三类行为模式:Serial ISP.Serial Boot.Device Boot,后两种都是跟App启动执行相关的行为模式,而Serial ISP模式则是相对独立的Flash下载功能,有了Serial ISP,便可省去专用…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RTyyyy系列MCU的性能. 在前面的文章 i.MXRTyyyy微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2017年推出的新一代跨界微控制器i.MX RTyyyy系列,该系列第一款芯片i.MXRT105x性能完爆同时期市面上所有的微控制器,官方公布的CoreMark跑分高达3020,有人可能不明白这个数字意味着什么,作为对比,我们再来看看意法半导体最流行的芯片STM32F103RB,它的CoreMark是…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是为i.MXRT设计更新Segger J-Link Flash下载算法文件. 想要在Flash中调试,基本是离不开Flash下载算法的,毕竟要先将代码烧写进Flash,然后才能调试.主流MCU开发环境(MCUX / IAR / Keil)以及调试工具(J-Link)的Flash下载算法设计思路基本都差不多,简单的说,就是把Flash擦写操作的底层驱动代码可执行文件通过JTAG/SWD预先加载到MCU内部RAM里,然后继续从JTAG/S…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1050/1020/1015系列ROM中的FlexSPI驱动API使用. 今天痞子衡去4S店给爱车做保养了,保养一次要等两小时,闲来无聊就写了这篇文章打发时间,正好痞子衡技术交流群里有朋友也在问这个主题,急人所急是痞子衡的一大特质(此处请允许我装一下). 本篇是 <利用i.MXRT1xxx系列ROM提供的FlexSPI driver API可轻松IAP> 的续集,上篇文章基本上把ROM API原理及使用讲得很透彻了,但…