概述

libsonic是一个支持音频倍速播放的开源库。支持大于2倍速的播放。有ANSI C的版本,也有纯Java的版本。能够方便的集成进你的应用中。

项目主页:https://android.googlesource.com/platform/external/sonic/+/master/doc/index.md

与其它解决方案相比,sonic在播放语音方面有更好的效果(视频播放大多属于这样的场景)。SoundTouch是一个常用的替代方案,在播放music方面效果更好。如果要支持高于两倍速的播放,sonic应该是目前最好的选择。

Sonic使用整数运算完成所有CPU密集型工作,并且在没有FPU的ARM CPU上运行良好。它支持多声道(立体声),并且能改变声音的音高。它适用于流式音频应用,可以处理16位有符号整数,32位浮点或8位无符号格式的声音流。 源代码是普通的ANSI C.简而言之,方便应用于实际的产品。

libsonic的使用

参照实例代码(SonicTest.java),我们可以很容易的在我们的程序中使用sonic。比较不好理解的可能是几个参数的设置,具体作用是什么?

文档中的说明:

speed为2.0意味着语速加倍。pitch为0.95意味着音调降低约5%。

volume为1.4表示采样乘以1.4,如果超过16位整数的最大范围,则截断。

rate可以改变播放速度。设置为2.0会让你听起来像花栗鼠说话速度非常快。0.7的值会让你听起来像巨人说话一样,慢悠悠的。声音的高低叫做音调,频率决定音调。物体振动的快,发出声音的音调就高。振动的慢,发出声音的音调就低

看完这个,我一直有一个疑问,我如果就是想要播放速度加倍,到底应该怎么样设置呢?是设置speed,还是设置rate呢?看来文档中是找不到答案了。只能写个应用实际看看。

实际测试效果:

改变pitch,rate都会使声音听起来不是同一个人的。同时调整pitch,rate也可以起到改变语速的作用(音色不变)。

只是调整语速,设置speed就可以了。

pitch:2.0 rate:0.5 等价于 speed:0.5

调用setChordPitch(true); 设置pitch也可以达到保持音色不变的效果。然而,这只对pitch的值变化不大有效果,pitch的值变化太多也会失真。

speed, pitch, rate这些参数是可以随时改变的,不需要刷新或重现创建Sonic。

java 音频倍速播放,libsonic - 倍速播放开源库相关推荐

  1. 优秀Java程序员应该知道的20个实用开源库

    一个优秀且经验丰富的Java开发人员的特点之一是对API的广泛了解,包括JDK和第三方库.我花了很多时间学习API,特别是在阅读Effective Java 3rd Edition之后,Joshua ...

  2. html原生音频播放器倍速,HTML5倍数功能视频播放器(加速2倍,1.5倍播放)

    HTML5倍数功能视频播放器(加速2倍,1.5倍播放) 倍数功能视频播放器的应用: 培训场景,教育教学场景下,可以倍速观看视频,比如1.5倍,2倍的速度观看视频,可以更快速的看完课程,节省时间. va ...

  3. python实现语音播放_用Python播放音频,并实现倍速播放——pyaudio模块用法(1)-nrg文件怎么播放...

    前言 很多小伙伴从网上看到的pyaudio教程大都是千篇一律复制的,而且讲的也不是很明白,我在这里用我的理解给大家仔细讲一下,比较简单易懂,希望大家能点个关注,支持一下! 此次教程只能播放wav格式音 ...

  4. Android MediaPlayer MP3播放器(倍速和音量)的封装和所见的问题

    Android MediaPlayer MP3播放器(倍速和音量)的封装和所见的问题 文章目录 Android MediaPlayer MP3播放器(倍速和音量)的封装和所见的问题 一.技术选型 二. ...

  5. 针对Android平台播放器开源库NiceVieoPlayer倍速的开发

    Android平台的视频开源库可谓百花齐放,直接给出比较流行的几大框架github地址:https://github.com/search?l=Java&o=desc&q=ExoPla ...

  6. html5带倍速功能的视频播放器(加速2倍,1.5倍播放)

    阿酷TONY  采用第三方云视频平台 HTML5倍数功能视频播放器(加速2倍,1.5倍播放) 倍数功能视频播放器的应用: 培训场景,教育教学场景下,可以倍速观看视频,比如1.5倍,2倍的速度观看视频, ...

  7. ffmpeg 视频倍速播放 和 慢速播放

    视频的倍速播放与慢速播放 通过使用 av filter 中的 setpts 来实现: ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" ...

  8. 酷播云H5播放器倍速播放功能

    大家好,我是小酷,小酷今天来说说H5播放器倍速播放功能: 酷播云是支持HTML5播放器及Flash播放器,两者兼容,可自由切换.其中,H5播放器自带倍速播放功能,用户可选择视频的播放速度. 酷播云Ht ...

  9. 视频倍速 - 在线调倍速的加速器APP工具

    视频怎么调倍速?一刀工具箱 APP 提供一键可将手机上的视频倍速播放,可以调整视频倍速的加速器,调节视频的速度也就是调节视频的播放速度! 代码片段 buildVideo(){let that = th ...

最新文章

  1. ps -ef 的含义
  2. AI换脸、声音篡改等,明确写入新版《民法典》
  3. boost::advance用法的测试程序
  4. 智能音箱音效哪个好_华为支浩:音质好是底线,AI基本功扎实让智能音箱不再是“玩具”...
  5. 你确定不反编译 likely 看看?
  6. 论文浅尝 | 用于嵌套命名实体识别的二部平面图网络(BiFlaG)
  7. 数据结构与算法分析(二)——C++实现链表
  8. GitHub使用:GitHub中watch star fork三个按钮干什么用的
  9. [CTO札记]研究:日本Rakuten(乐天)
  10. Linux如何查找软件的安装位置
  11. Win11怎么安装语音包?Win11语音包安装教程
  12. BMFont制作字体图集
  13. MyBatis的下载
  14. Python爬虫_宅男福利?妹纸勿点__一蓑烟雨任平生
  15. 【密码学基础】02 数论基础
  16. POJ 3233 Matrix Power Series(矩阵快速幂)
  17. matlab plot函数画线,线型和颜色
  18. 蚂蚁森林中能量自动收取
  19. 简易画图工具(Python)
  20. Agile在线项目管理平台

热门文章

  1. 基于微信预约挂号小程序毕业设计毕设作品(3)后台功能
  2. Task5 基于深度学习的文本分类
  3. bt种子播放器WebTorrent for Mac使用方法
  4. Swinsian for Mac(高级音乐播放器)
  5. 在sql强制指定索引查询
  6. 如果有不限额度,稳定的Facebook广告账号,你也能爆单?!
  7. asp.net 中根据sessionid 获取或删除session
  8. [原创]Redis BUG系列(I)——SDS字符串的sdssplitlen函数实现顺序BUG,浪费了计算与内存资源
  9. 分布式存储Ceph 架构 以及 IO算法流程简介
  10. 线上出现死锁怎么解决?不看别后悔!!!