分类
程序设计

C#基于winmm实现录音功能

我们在开发Windows客户端程序时,有时需要实现录音的功能,比如使用语音识别时。本文中的代码通过DLL导入调用系统API实现了录制16kHz、16bit位宽的单声道wav格式录音。该代码已用于ASRT语音识别客户端SDK(C# WPF桌面版):https://github.com/nl8590687/ASRT_SpeechClient_WPF

分类
后端开发 程序设计

基于动态软件体系结构的插件机制原理(C语言实现)

我们说软件体系结构的时候,常常说的是静态的体系结构。众所周知,静态的体系结构在运行的时候是不会发生结构上的变更的。而每当在结构上有变更的时候,比如给软件增加一个新的功能,新的模块,都需要重新编译相关的组件并部署。由于这个部署常常需要重启软件,这给一些软件的运行维护带来了极大的挑战,比如金融类的软件系统,正常情况下不能停止运行,哪怕数秒时间,否则会产生很多麻烦。而通过动态软件体系结构,使用可以“热插拔”的插件,我们就能够实现“给奔跑的汽车换零件”。

分类
云计算 后端开发

转载:服务端高并发分布式架构演进之路

本文转载自segmentfault.com

https://segmentfault.com/a/1190000018626163

1. 概述

本文以淘宝作为例子,介绍从一百个到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。

特别说明:本文以淘宝为例仅仅是为了便于说明演进过程可能遇到的问题,并非是淘宝真正的技术演进路径

分类
后端开发

转载:架构整洁之道, 看这一篇就够了!

本文转载自微信公众号:阿里技术,作者:韩帅

https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247490231&idx=1&sn=b12ac5475855701c7d5ab73bb4d2b8c0

程序的世界飞速发展,今天所掌握的技能可能明年就过时了,但有些知识历久弥新,掌握了它们,你在程序的海洋中就不会迷路,架构思想就是这样的知识。
本文是《架构整洁之道》的读书心得,作者将书中内容拆解后再组织,不仅加入了个人的独到见解,而且用一张详细的知识脉络图帮助大家了解整本书的精华。如果你读过这本书,可以将本文当做一次思想交流,如果你还没看过这本书,更要阅读这篇文章,相信你会得到不同于以往的启发。

分类
ASRT Python学习 程序设计

Python实现录音和播放功能

我们在需要跟用户使用语音进行交互的场景中,经常需要使用到录音的功能,比如网络语音通话和语音助手等,而完整的从底层实现录音功能往往是相当困难的,通常通过调用相关API来实现。这里我们介绍一种使用Python(3.x)中的PyAudio软件包来实现录音的方法。

分类
数据结构和算法 程序设计

C++ 常用STL库总结

我们在使用C++开发相关软件、实现一些算法的时候,不可避免的会使用到STL标准库,本文对这个标准库常用的几种数据结构和算法库进行了整理。代码样例来自HowieMen,感谢。

分类
数据结构和算法

数据结构:树和二叉树

在数据结构中,存在着线性结构和非线性结构两种,而树型结构就是其中的一种非线性结构,最常用的有树和二叉树。树是一种以分支关系定义的层次结构,其实例广泛存在与人类的社会生活中的方方面面,比如社会组织机构中的层次关系等。在计算机领域中,树在编译程序、数据库系统中,也有着很重要的应用。

分类
数据结构和算法

数据结构:队列

队列是一种先进先出(FIFO, first in first out)的线性表,这一点跟栈是刚好相反的。这种数据结构只允许在表的其中一端插入元素,在另一端删除元素,就像我们日常生活中的排队一样。在队列中,最早进入队列的元素是最早离开的,进入越晚的元素离开的也越晚,不能从中间插队。

分类
数据结构和算法

数据结构:栈

栈是数据结构中的一种重要的线性结构,也是一种线性表,只是其操作受限。使用的过程,就像往桶里装和取物品一样,最先放进去的物品必须把后来放进去的压在上面的物品拿出去,才能取出。因此,栈是一种限定性的数据结构,其广泛应用与各类软件系统中。本文主要介绍栈的原理,并以一些应用实例来说明栈的功能。

分类
数据结构和算法

数据结构:线性表

数据结构中的线性表是一种线性结构的数据集合,是n个数据元素的有限序列,其存在唯一的一个被称作“第一个”的数据元素,也存在着唯一的一个被称作“最后一个”的数据元素,每个元素至多只有一个前驱和一个后继。其中,第一个元素没有前驱,最后一个元素没有后继。我们编程中最常用的一维数组(Array类)就是一种典型的线性表结构,高级一点的比如列表(List类),也是一种典型的线性表结构。这是一种最常用且最简单的数据结构。