基于WT2605C-32N音频蓝牙语音芯片的实时录音上传技术方案介绍

现代社会,信息技术的发展尤其迅速,信息和数据的重要性和安全性日渐深刻,在某些特殊场合,因为工作上的需要,或者日常生活的需求,往往需要记录和保留一些重要的声音。在某些时刻,录音成为记录生活,保存证据的重要手段,可见,录音技术对于我们现代生活尤为重要。

而随着录音技术的发展,一种实时录音技术受到更多人的青睐,相比较于传统录音而言,实时录音技术突破了设备的限制,从单纯的录音设备扩展到我们的云端,随时随地即可分享,实现了我们录音数据的可交互性,在实际应用中给提升了我们产品的应用价值,给用户带来更完美的体验感受。

唯创知音一直致力于成为语音物联网界的领导者,自主研发了一种实时录音技术上传技术,在录音笔,录音耳机等录音设备上面应用广泛,这种实时录音技术,具有数据量小,失真率低,降噪效果明显等特点,通过外部蓝牙设备,即可实现云端存储,云端即时播放等功能。不仅如此,这种录音上传技术因为其通用性强,广泛应用于唯创知音自主研发的各类蓝牙芯片上,下面我们以其中一种方案作简单的介绍:

WT2605C-32N录音上传方案介绍

1. 方案概述

录音上传技术近些年在录音笔,录音耳机中应用广泛,实现了移动录音设备和云端的互联,即时播放,即时翻译,同声传译成为产品一大亮点,极大方便了我们的生活。而要保证这些功能的实现,就离不开高品质的录音效果,和高压缩的录音数据,本方案录音采用IMA-ADPCM压缩算法。IMA-ADPCM (ADPCM Adaptive Differential Pulse Code Modulation), 是一种针对 16bit声音波形数据的一种有损压缩算法, 它将声音流中每次采的16bit 数据以 4bit 存储, 所以压缩比为1:4。而压缩/解压缩算法非常的简单, 所以是一种低空间消耗,高质量声音获得的好途径。

2. 方案框图

本方案采用WT2605C-32N芯片,可外挂本地存储设备,通过串口与蓝牙透传芯片进行通信,将录音数据上发给云端设备。

3. 方案原理图

4. 用户协议

4.1.协议命令格式

通讯数据格式是:起始位:1位;数据位:8位;奇偶位:无;停止位:1位。发送的指令都为十六进制的格式,默认波特率为115200,可进行修改,但不可小于115200波特率。使用电脑串口调试助手,需要正确设置串口的参数,设置如图:

注意:“长度”是指长度+命令码+参数+校验和的长度,“累加和校验”是指长度+命令码+参数的累加和的第八位。

4.2.返回码格式

参数:00 :表示执行成功, 开始录音

01 :表示执行错误

02 : 表示文件不存在

4.3.命令列表

4.3.1. 录音开始命令(D6)

APP发送此条指令,控制录音芯片开始录音,此时录音芯片会返回开始录音成功返回码,录音过程中发送此条命令返回错误;

开始录音返回码:

APP收到开始录音返回码,则开始准备处理接收到的录音数据,此时芯片进入录音状态,同时开始发送录音数据包。

首先录音芯片会发送一包60个字节的音频数据包,该包数据为IMA-ADPCM格式音频数据的音频头,前面包含“RIFF”标志和文件大小,注意此时ChunkSize 为0X00000034不包含当前音频数据包的长度,因此整个音频数据包的头长度为0X08+0X34,也就是60个字节的长度。客户需要录音结束并接收完整个数据包之后,重写这个位置。

例如,当前文件的音频头标识如下:

接下来的音频头包含Format Chunk 块和Fact Chunk,客户不用关心实际数据情况。

最后的音频数据头包含Data Chunk 客户需要录音结束并接收完整个数据包之后,重写DataChunkSize这个位置

音频数据头发送完毕后,紧接着会发送音频数据包,按照目前设置,每个数据包C长度为256个字节,受限于每个手机蓝牙MTU限制,每包数据量不能超过手机默认的MTU值,所以这里按照最小MTU值128字节进行配置,将数据包C分两包A+B数据包发送,A和B每包数据量为128字节, 每包数据的间隔为10MS左右, 每个C包数据包间隔为60MS左右(根据录音码率决定,不可更改),即每一个C包数据包含整个nBlockAlign ,发送过程中即使某包数据丢失,也不会影响整个文件的播放。

当客户开始接收音频数据包的时候,客户APP需要记录录音结束前总的音频数据包的个数,比如APP在结束录音时候共接收到0X36包音频数据包,则总的音频数据的长度为 0X36 * 0X100 = 0X3600;

4.3.2. 录音结束命令(DA)

APP发送此条指令,录音芯片接收到录音结束命令,停止发送录音数据包,并结束当前录音,返回结束录音返回码;

结束录音返回码:

APP收到结束录音返回码,则保存当前录音文件,并将数据长度重写到文件相关位置,如图所示。至此,录音上传完成。

5. 程序设计框图

6. 应用实例

下面我们用唯创WT-RS2 APP软件进行实际测试录音上传功能,首先打开APP,选择MP3方案;

连接蓝牙名称为VT-A782的蓝牙设备,连接成功后,APP界面默认会打印当前蓝牙设备的蓝牙MAC地址,唯创知音可以为每台蓝牙设备可以设置不同的的MAC地址,从而形成单独唯一的蓝牙名称,在某些应用场合,为每台产品形成唯一身份码。

点击APP界面开始录音标志,此时APP按照时间创建录音文件,此时开始接收录音数据,每个A和B包数据间隔10MS,每个C包数据间隔60MS,直到点击APP结束录音按钮,此时APP显示录音结束。此时录音文件已经创建完毕,客户可通过APP界面将录音文件通过分享的方式发送到电脑或者其他播放器进行播放!

关于我们

唯创知音作为一家专注于语音技术研究的高新技术企业,始终坚持以“服务好工程师”为目标,以行业语音交互器件标准化为方向,致力于让复杂变简单,提供快捷的语音、智能物联网应用解决方案。

WT588F02B、WT2003H系列语音芯片应用设计方案,在智能闹钟、智能水杯、雾化器等消费电子行业领域内已有成熟的应用案例。消费类电子产品应用是公司重要的发展领域,未来,唯创知音将在更多行业推出标准化语音芯片,进一步提升工程师的设计体验,为消费类电子行业标准化赋能。

【无标题】音频蓝牙语音芯片,WT2605C-32N实时录音上传技术方案介绍相关推荐

  1. 基于WT2605C-32N音频蓝牙语音芯片的实时录音上传技术方案介绍

    现代社会,信息技术的发展尤其迅速,信息和数据的重要性和安全性日渐深刻,在某些特殊场合,因为工作上的需要,或者日常生活的需求,往往需要记录和保留一些重要的声音.在某些时刻,录音成为记录生活,保存证据的重 ...

  2. pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存

    pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存 目录 输出结果 代码实现 输出结果 代码实现 # -*- codi ...

  3. 语音芯片c语言程序,语音芯片pm50 在430单片机上的C语言编程

    智能语音芯片,它既是语音播放电路,也是智能单片机.其音质水平.价格都要略优于著名的ISD电路,同时也有21KHZ高保真音质.而其开发设计简单度.智能控制的简单度.整体性价比等指标要远胜过ISD,而如果 ...

  4. 蓝牙语音芯片模块数传音频BLE选型 支持mp3播放外挂spiflash双模

    蓝牙系列产品分类 一.简介 目前我们所主推的蓝牙方案,包含BT201方案.BT301方案.BT321F方案.BT401方案.这些方案都是为了满足不同的应用场景.[遵循的原则就是硬件相同  软件不同来满 ...

  5. 【无标题】LED照明芯片就选:禾川芯

    高品质,高性能,高效率LED照明芯片:DCDC降压恒流调光驱动.低压线性恒流调光驱动.DCDC降压恒流常亮驱动.DCDC升压恒流调光驱动.DMX512解码调光驱动.DCDC升压恒压驱动.DCDC降压恒 ...

  6. php计算购置税1007无标题,新旧个税计算公式对比–ps:世界上最好的语言PHP

    先上代码为敬<?php echo "个税计算新旧对比:\r\n"; /** * [oldMyMoney 旧版本个税计算] * @Author yangjun * @DateT ...

  7. html语音上传,语音识别—前端录音上传服务器进行语音识别

    采用前端录音,Websocket搭建Node服务器,音频对象Blob使用Websocket传给后端服务器后写入本地音频文件,然后调用百度AI语音识别本地音频文件,最后将识别结果传给前端显示. 百度语音 ...

  8. java上传音频到服务器_Java 客户端向服务端上传mp3文件数据的实例代码

    客户端: package cn.itcast.uploadpicture.demo; import java.io.BufferedInputStream; import java.io.FileIn ...

  9. 人脸识别智能锁OTP语音芯片选型指南

    人脸识别智能锁是基于人脸识别技术制造的人脸识别技术是基于人的脸部特征,对输入的人脸图像或者视频流进行识别处理.与指纹识别相比,人脸识别锁的主要优点是人脸识别锁可以在不与用户接触的情况下主动获取用户信息 ...

最新文章

  1. TexturePacker
  2. 数据库系统概念总结:第二章 关系模型介绍
  3. javaSE基础代码案例
  4. python怎么把列表转换成字符串_如何将字节列表(unicode)转换为Python字符串?
  5. Laravel源码解析之HTTP Kernel
  6. [已解决]Tomcat启动报 java.net.BindException: Address already in use: JVM_Bind
  7. jQuery:实现排他
  8. ora-01950:对表空间XXX无权限
  9. java数据库查询类
  10. .Net免费公开课视频+资料+源码+经典牛逼 汇总篇【持续更新】
  11. mysql中DateTime、Date、Time、TimeStamp区别
  12. 一篇比较好的高数的学习规划分享
  13. 参数曲面matlab,MATLAB空间曲面的实现方法
  14. 计算机测色配色应用,计算机测色及配色.doc
  15. json数组排序,深拷贝,浅拷贝,删除,增加,筛选,
  16. SDJZU DotA
  17. 平面解析几何----圆锥曲线焦点弦上焦半径的倒数和为ep分之2的初等几何证明
  18. 被AI潮抛弃的企业?对话微软CTO韦青,如何应对“变革”焦虑
  19. ffmpeg文档中文翻译
  20. vue3.2+ 滑动验证组件,pc/手机通用,即插即用

热门文章

  1. java中画房子的程序_房子用java绘图(控制台)
  2. 对话交互:封闭域任务型与开放域闲聊算法技术
  3. 教你使用 Reflector中的Reflexil插件反编译.NET,修复Help Viewer v2.0 - Error: .cab未经Microsoft签名
  4. 【python 初学者】使用matplotlib画对比旋风图
  5. 【ESP32调试-快速入门】
  6. 微博 新京报 植发机器人_微博助男孩找到“救命血清”
  7. 一名大四ACM弱鸡 退役宣言
  8. 【华为机试题 HJHJ100】等差数列
  9. EPG 在 CMMI 中的缩写含义   EPG (Engineering Process Group) 在“能力成熟度模型集成”中,是“过程改进小组”的缩写.   是指决策层面的LEADER组成的委
  10. 亚马逊测评技术研发和孵化经验分享!