2024全面拥抱AI

6 月 2 日
阅读 3 分钟
1.8k
从去年年初大模型开始火了之后,最开始注册账号体验了下,后面就没有太用了,感觉没有诉求似的,老板们也在念叨,自己思维上一直在想如何让公司的业务和AI结合,结果想破脑袋也没有找个结合点,包括公司去年的一号项目最后也很鸡肋,我们在负责的业务探索了一个让AI帮助实现将语音输入的内容去口语化,以此降低语音输入...
封面图

从ChatGPT到AGI还有多远

6 月 2 日
阅读 7 分钟
510
21年开始在公司负责一个全链路语音的项目,支持公司的Iot设备,有点类似于市面上”小爱“、”小度“之类的音响,算是语音+语言在AI方向的综合应用,整体交互流程如下图:
封面图

2024年移动端技术探索

6 月 18 日
阅读 5 分钟
1.4k
2023年号称AI元年,AI带来了一些不是很清晰的机会,没有看到有多好的落地,对于互联网,不止技术层面没有突破,业务层面的需求也断崖式下滑,没有创新就没有需求,老业务的修修补补也带不来多少需求。以音视频行业为例,业界很有影响力的LiveVideoStack也停止了商务活动,音视频大会也不再开了。一切都在朝着萎缩的方向...
封面图

理解静态类型:为什么选择TypeScript?

今天 09:31
阅读 3 分钟
41
本文我们要讨论一个非常关键的概念——静态类型,以及它是如何帮助我们更好地编写代码的,特别是为什么在开发中选择 TypeScript 而不是传统的 JavaScript。
封面图

TypeScript与JavaScript的区别

今天 09:28
阅读 4 分钟
52
本文我们要聊一聊 TypeScript 和 JavaScript 之间的区别。可能我们已经注意到,TypeScript 是 JavaScript 的超集,那么它到底比 JavaScript 多了些什么?为什么我们要选择 TypeScript,而不仅仅是写普通的 JavaScript 呢?
封面图

Hello World:第一个TypeScript程序

12 月 21 日
阅读 2 分钟
69
今天我们要一起动手写一个简单的 TypeScript 程序——就是那个大家都知道的经典“Hello World”程序。虽然很简单,但它将帮助我们确认一切设置正常,并且我们能开始使用 TypeScript 来编写代码了!
封面图

TypeScript概述与安装指南

12 月 21 日
阅读 4 分钟
60
HarmonyOS Next主要开发语言是ArkTS,ArkTS又是TS的超集,为了更好的学习HarmonyOS 和 ArkTS,从基础的TS入口介绍TS语法。
封面图

HarmonyOS Next上架元服务最全操作步骤来袭

12 月 20 日
阅读 6 分钟
87
官方定义是:元服务是HarmonyOS提供的一种轻量应用程序形态,具备秒开直达,纯净清爽;服务相伴,恰合时宜;即用即走,账号相随;一体两面,嵌入运行;原生智能,全域搜索;高效开发,生而可信等特征。元服务可独立上架、分发、运行,独立实现业务闭环,可大幅提升信息与服务的获取效率。
封面图

HarmonyOS Next开发工具DevEco Studio介绍:ASan与TSan检测根治你的C++恐惧症

12 月 18 日
阅读 5 分钟
61
很多开发者面对C++都很犯怵,其中主要的一块就是内存操作。不合理的内存操作,比如数组越界、内存泄露、释放已释放的地址,可能会引起程序性能问题:内存消耗大,卡顿,更严重的会导致程序出现崩溃。当应用运行发生错误使应用进程终止时,应用将会抛出错误日志以通知应用崩溃的原因,开发者可通过查看错误日志分析应用崩...
封面图

掌握DevEco Studio这一功能,高效实现ArkTS与C++胶水代码

12 月 16 日
阅读 5 分钟
93
ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,保持了TS的基本风格,同时通过规范定义强化开发期静态检查和分析,提升程序执行稳定性和性能。ArkTS适合用在高效UI界面开发场景。

HarmonyOS Next 一文搞懂签名验证机制

12 月 13 日
阅读 4 分钟
127
Android应用的签名只需要一个签名文件,在开发环境中我们默认是用debug签名,debug签名,debug签名别名是androiddebugkey,密码是android,调试证书存储在用户目录下的.android文件夹中,证书文件通常命名为debug.keystore,在build.gradle中不用专门配置调试签名。HarmonyOS Next采用了类似于iOS签名机制,工程中的签名...

多媒体技术简介

8 月 25 日
阅读 1 分钟
235
所有的视频都至少包含一个关键帧,作为文件的第一个帧。其它的关键帧可用来改善视频的质量,不过它们也会增加文件大小。一般而言,每一秒视频至少需要使用 1 个关键帧。若使用此公式,在每秒播放 25个帧的视频中,每 25 个帧就会有 1 个关键帧。增加关键帧个数可改善质量,但是同时增加带宽和网络负载。

多媒体技术(一)之图形图像

8 月 25 日
阅读 8 分钟
182
人眼看到的物体的颜色不仅取决于该物体所反射的光的波长,还与照射它的光源有关.如果用单一蓝色去照射绿色的树叶,则此时的树叶只能是黑色的.因为蓝色光源中没有绿色成分,树叶吸收了全部蓝色而呈现黑色.

多媒体技术(1.1)之图像分辨率

8 月 24 日
阅读 2 分钟
205
「分辨率」这个概念还有「解析度」等说法,所以能从字面上看出来,它描述的其实就是图像包含多少细节、有多「清晰」。但具体到怎么用数字来描述一个图像有多少细节,就有很多个描述的角度,于是「分辨率」有很多种意思。

Image Stride(内存图像行跨度)

8 月 24 日
阅读 5 分钟
197
When a video image is stored in memory, the memory buffer might contain extra padding bytes after each row of pixels. The padding bytes affect how the image is store in memory, but do not affect how the image is displayed.

多媒体技术(1.1)之图像中频率的概念

8 月 23 日
阅读 3 分钟
316
一、图像高频信号和低频信号的理解1.1 图像中的低频信号和高频信号也叫做低频分量和高频分量。简单一点说,图像中的高频分量,指的是图像强度(亮度/灰度)变化剧烈的地方,也就是我们常说的边缘(轮廓);图像中的低频分量,指的是图像强度(亮度/灰度)变换平缓的地方,也就是大片色块的地方。人眼对图像中的高频信号...

Skype SILK codec 介绍

8 月 23 日
阅读 1 分钟
267
 最近简单看了一下Skype SILK codec 算法, 基本原理和流程大体明白了, 以后有时间再仔细研究一下细节,今天就简单说说. SILK Codec是一个语音和音频编解码算法, 对于音频带宽、网络带宽和算法复杂度都具有很好的弹性。支持4种采样率:8KHz、12KHz、16KHz、24KHz;三种复杂度:低、中、高。编码码率在 6~40kbps(不同采样...

多媒体技术(五)之数字音频视频信号的压缩

8 月 22 日
阅读 3 分钟
190
按ITU-R BT. 601建议,数字化后的输入图像格式为720*576像素,帧频为25帧/s,采样格式为4:2:2,量化精度为8bit,则数码率:(720 576 + 360 576 + 360 576) 25帧/s * 8bit = 165.888Mbit/s。如果视频信号数字化后直接存放在650MB的光盘中,在不考虑音频信号的情况下,每张光盘只能存储31s的视频信号。数据压缩的理论基础...

音频编码与容器关系

8 月 22 日
阅读 4 分钟
321
音频编码与容器关系MEPG-1 or MPEG-2 Audio Layer III有损压缩mepg 组织即 MP3 编码格式扩展名.mp3Layer 3:320 kbit/s优秀,192 - 224 kbit/s很好,128 - 192 kbit/s好mimeaudio/mepg audio/MPA audio/mpa-robustAAC有损压缩Fraunhofer IIS、杜比实验室、AT&T、Sony、Nokia扩展名.aac 使用 MPEG-2 Audio Transport Strea...

多媒体技术(二)之声音

8 月 21 日
阅读 19 分钟
506
信息论的观点来看,描述信源的数据是信息和数据冗余之和,即:数据=信息+数据冗余。音频信号在时域和频域上具有相关性,也即存在数据冗余。将音频作为一个信源,音频编码的实质是减少音频中的冗余。自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码,即PCM编码。PCM通过抽样、量化、编码三个步...

linux 网卡配置

8 月 21 日
阅读 8 分钟
343
通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置(用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在)。

Python 之函数

8 月 20 日
阅读 3 分钟
214
函数参数位置参数: def power(x):默认参数: def power(x, n=2): 默认参数必须指向不变对象!可变参数: def calc(*numbers):关键字参数: def person(name, age, **kw):命名关键字参数:def person(name, age, *, city, job):参数组合:在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数...

使用sphinx自动提取python中的注释成为接口文档

8 月 20 日
阅读 2 分钟
249
写好了代码,交付给他人使用的时候,查看代码固然可以了解各类和函数的功能细节,但接口文档能更方便的查找和说明功能。所以,一价与代码同步的接口文档是很有必要的。sphinx可以根据python中的注释,自动的生成接口文档,这样有利于保证文档和代码功能的同步。让我们来了解如何自动生成文档。

Python 之面向对象

8 月 19 日
阅读 4 分钟
403
__slots__限制类的绑定属性__str__: print打印对象,返回用户看到的字符串__repr__:返回程序开发者看到的字符串,如直接输入变量,是为调试服务的 {代码...} 可以直接: {代码...} __iter__: 一个类用于for...in循环 {代码...} __getitem__:Fib实例虽然能作用于for循环,看起来和list有点像,但是,把它当成list来使用还是不...

python服务器程序部署

8 月 19 日
阅读 6 分钟
312
WSGI(Web Server Gateway Interface),翻译为Python web服务器网关接口,即Python的Web应用程序(如Flask)和Web服务器(如Nginx)之间的一种通信协议。也就是说,如果让你的Web应用在任何服务器上运行,就必须遵循这个协议。那么实现WSGI协议的web服务器有哪些呢?就比如uWSGI与gunicorn。两者都可以作为Web服务器。可...

python 之基础语法

8 月 18 日
阅读 1 分钟
313
对于作为函数中的list,方法1行不通,因为函数执行后,list长度是不变的,但是可以在函数中释放一个参数list所占内存:del list_new[:]或者list_new[:] = []达到清空列表的目的,速度快,并且彻底

Kotlin 语法

8 月 18 日
阅读 3 分钟
1.5k
比较两个字符串,如果两个字符串的内容一致,在Java中使用 str1 == str2 时,是比较两个字符串的地址值,很清楚两个字符串的地址不一样,返回false,但是在kotlin中,则不是如此,比较的只是字符串的内容,而===相当于Java中的==,用来比较引用对象, 上述代码返回的是true。

CPP 小技巧

8 月 17 日
阅读 10 分钟
225
标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义。下面预定义宏:

cmake 语法入门

8 月 17 日
阅读 13 分钟
437
其中,通过 cmake_minimum_required 方法指定 CMake 使用版本,通过 project 指定工程名。而 add_executable 就是指定最后编译的可执行文件名称和需要编译的 cpp 文件,如果工程很大,有多个 cpp 文件,那么都要把它们添加进来。定义了 CMake 文件之后,就可以开始编译构建了。CMake 在构建工程时会生成许多临时文件,避...

Android声音播放与录制

8 月 16 日
阅读 9 分钟
1.4k
STREAM的意思是由用户在应用程序通过write方式把数据一次一次得写到audiotrack中。这个和我们在socket中发送数据一样,应用层从某个地方获取数据,例如通过编解码得到PCM数据,然后write到audiotrack。这种方式的坏处就是总是在JAVA层和Native层交互,效率损失较大。