记得12年左右的时候,美国出现了chirp应用,该应用能够使用声波在iphone手机间传输文本,图片、甚至视频。当时认为非常高大上。

再后来,到13年的时候国内也出现了非常多声波应用。比方支付宝的声波支付、茄子快传的声波传输、车载设备、另一些智能摄像机厂家使用声波在手机和摄像机间传输wifiusername和password信息。

想在自己的应用中使用声波传输功能,但苦于在网上找不到能够用的商业版本号,后来找到了又太贵,所以决定自己开发一个,方便自己,也方便广大声波传输的爱好者。

声波传输原理介绍:

声波传输事实上比較简单,没有想象中的那么复杂。一句话就是把一段时长的频率作为一种信号,发送方把信号编码成非常多段等长的频率,通过播音设备发射出去;接收方通过录音设备录制声音,然后将等长的频率识别出来。最后还原成相应的信号。这样就做到了声波传输,比方如今我们的编码是32进制的(0-31),相应的频率我们设定为1k-4.1k,每一个信号相应的时长为100ms,假设我们发射信号3。2,10,30则相应的频率为1.3k。1.2k,2k,4k。每段频率的时长为为100ms,接受端识别器的主要作用就是识别这些100ms的频率,然后还原成信号。

声波传输功能介绍:

1. 声波传输支持一对一传输。也支持一对多的传输。

2.支持随意字符的传输,包含字母、数字、符号、汉字、甚至俄语等其它语种。

3.在安静情况下,有效传输距离能够达到10米左右,在一般应用场景下也能达到非常可观的识别距离。

4.使用特殊的降噪算法。对噪声有非常好的抑制作用。在汽车行驶过程中、公交车、食堂、大马路、办公场所等都能够达到良好的识别率。

5.在一般应用场景下传输数据正确率达到98%以上。程序中加入了自己主动纠错算法,能够在一定程度上自己主动纠正传输中发现的错误,同一时候也能在一定程度上保证收到数据的正确性。

6.支持的平台。眼下该声波传输技术已经在iOS、OSX、Android、Windows、Linux、以及嵌入式平台(mips和arm指令集)上成功执行。并都有成功的商业案例。

7.嵌入式特殊定制和优化。随着嵌入式智能设备的大量兴起(比方车载设备、智能摄像机、智能路由器等等),眼下有大量的嵌入式应用须要集成声波传输功能。针对嵌入式平台我们专门对内存占用和运算效率作了优化,内存占用10K以内,cpu主频150M就能够顺利执行声波传输模块。

8.可定制性强。比方对不同的频率、不同的声音、音量等等进行定制。

9.超声波传输支持。

我们能够为用户提供超声波传输版本号。也即,在传输过程中听不到声音。

10.还能够为用户提供声音的叠加功能,比方类似支付宝的咻咻功能,也能够为用户加入其它特殊的声音,比方狗叫、猫喵等等。

比方发送一段信息,发出的是狗叫,对方收到的是信息。

声波传输API官方站点下载:www.sinvoice.com


为您的Android,iOS等应用加入声波传输功能的更多相关文章

  1. Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)

    本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...

  2. Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上)

    本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:bl ...

  3. Tomcat双向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端超安全通信

    紧接着<Tomcat单向Https验证搭建,亲自实现与主流浏览器.Android/iOS移动客户端安全通信>,此处演示下更安全的双向Https认证的通信机制,为了清晰明了,以下进行单独描述 ...

  4. Tomcat单向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端安全通信

    众所周知,iOS9已经开始在联网方面默认强制使用Https替换原来的Http请求了,虽然Http和Https各有各的优势,但是总得来说,到了现在这个安全的信息时代,开发者已经离不开Https了. 网上 ...

  5. [修复] Firemonkey 画线问题(Android & iOS 平台)

    问题:官方 QC 的一个 Firemonkey 移动平台画线问题: RSP-14309: [iOS & Android] Delphi 10.1 Berlin - drawing proble ...

  6. [修复] Firemonkey 使用 DrawPath 断线问题(Android & iOS 平台)

    问题:使用 Canvas.DrawPath 绘制时,最后一点无法画到终点位置.(这个问题要在粗线才能察觉) 适用:Delphi 10 Seattle (或更早的版本) for Android & ...

  7. Unity 5.3.1 No Android/IOS module loaded

    unity我一直在用5.0以下的版本 昨天升级到了最新版本5.3.1 发现无法打android包,ios也不行 提示“No Android/IOS module loaded” 下面有个Module ...

  8. React Native微信分享 朋友圈分享 Android/iOS 通用

    超详细React Native实现微信好友/朋友圈分享功能-Android/iOS双平台通用   2016/06/16 |  React Native技术文章 |  Sky丶清|  暂无评论 |  1 ...

  9. cordova android ios

    一 . cordova android 中js 调用JAVA 方法: 二 . cordova ios --->js 调用object (一); 三 .cordova ios --->OC ...

随机推荐

  1. 移动开发必备!15款jQuery Mobile插件

    移动互联网的发展,来自PC端的网页并不能完全自适应移动端页面需求,使得响应式设计体验产生并成为潮流,也正是这样一种需求,促成了jQuery Mobile的流行.jQuery Mobile这样一款基于j ...

  2. bat面试总结

    bat是国内互联网行业的龙头老大,招聘要求自然也是互联网行业最高-面试过程一般考查四个方面:基础+算法+数据结构+项目. 基础:c/c++/java等语言基础,这个根据你应聘所选的语言来定(一般不会考 ...

  3. Arduino1.7.10在Ubuntu下创建快捷方式

    从官网下载的arduino1.7.10版本没有快捷方式只有可执行文件arduino,通过下面的方法可以创建快捷方式 打开链接:http://www.easyicon.net/1171938-ardui ...

  4. 在IIS 中如何配置URL Rewrite,并且利用出站规则保持被重写的Cookie的域

    Url Rewrite配置 xx.aa.com/bb/test1.aspx 会重写到 bb.aa.com/test1.aspx 具体怎么配置入站 出站规则 结果:

  5. 深入理解PHP Opcode缓存原理

    什么是opcode缓存? 当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode).Opcode cache的目地是避免重复编译,减少 ...

  6. NHibernate的简单例子

    NHibernate的简单例子 @(编程) [TOC] 因为项目需求,搭了一个NHibernate的例子,中间遇到了一些问题,通过各种方法解决了,在这里记录一下最后的结果. 1. 需要的dll Com ...

  7. 将服务器返回的URL或者网址截取出来特定的字符,然后将字符返回,一般根据返回的字符判断用户是否登录等即时状态

    1.用NSScanner过滤掉url中开头或者尾部存在的空格 2.用NSScanner的 setCharactersToBeSkipped方法忽略指定的字符集 3.用scanUpToString扫描去 ...

  8. Win7系统下利用U盘安装Ubuntu14.04麒麟版

    转自http://www.360doc.cn/article/14743053_335473181.html 重要提示:在采用u盘安装ubuntu分区时,所有磁盘一定要全部设置成逻辑分区,包括根目录/ ...

  9. [Netbeans]为面板设置背景图片

    与AndroidStudio等类似IDE不同,在Netbeans开发桌面程序时,不可以直接通过src=@drawable 等方法为窗口设置背景图片.这里介绍一种简便的方法: 1:首先,拖动一个面板到f ...

  10. ASP.NET MVC- 在Area里使用RedirectToAction跳转出错的解决方法

    mvc使用Area分区开发后,存在不同Area之间的跳转,需要为每个区间添加Area规则,如下: 按 Ctrl+C 复制代码 using System.Web.Mvc; namespace web.A ...