首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于Speex的声学回声消除

Speex中回声消除API封装在语音处理API中,在最新版本的Speex中将语音处理相关的API独立封装成libspeexdsp。...一般可以与Speex中的预处理器一起使用,已达到较好的声音效果,应用预处理器API的流程也很简单:包含相关头文件——创建预处理器状态——对每帧进行预处理——销毁预处理器状态。...目录的包含目录和库目录分别为speex库中的include和lib,我用的是speex-1.2beta3-win32*/ #include #include...m_pfNoise,所以CSpeex中可以删除数据成员m_pfNoise*/ /*本文依然保留,是为了测试两个版本的差别,从结果来看,至少人耳似乎听不出有多大差别*/ speex_echo_cancellation...注意FarEnd.pcm参考回放的幅值比NearEnd.pcm录音到的回放幅值大,这是因为声音在传播过程中是会衰减的。

3.3K20

Android 基于 Speex 的高度封装语音库,0 耦合,没三方jar包

顺便提一下: 这个是接着我上一次开源的 仿:Android - 微信 - 朋友圈 - 小视频播放,多4句废话算我输 项目的。...目的: 不想为具备相同功能的应用开发做每次的相同代码的编写,再用简洁的风格造轮子。 ---- 为了避免大家浪费时间,直接先看下面的 截图,看完后,若你觉得会需要到,那么就请听我继续。 ? ?...扯下感慨 之前说过的开源IM系统,其实是做好了的,没什么时间写文档,太乱开了也没意义。这次的文章也是挤出时间写的。语言我会尽量做到通俗易懂,少说点废话,谢谢那些一直关注我的同行,定以干货以回报之。...使用方便,下面见解析 低内存占用,提供捞底回收 多接口延伸,例如结果文件路径的返回,和文件的大小 基于 Speex jni 库,高效,自定义语音文件格式 解析 实例: private VoiceRecorderHelper...单位分贝 */ } } ); } 技术点 (可以不看) jni层:编译好 Speex.so

1.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 基于 Speex 的高度封装语音库,0 耦合,没三方jar包

    顺便提一下: 这个是接着我上一次开源的 仿:Android - 微信 - 朋友圈 - 小视频播放,多4句废话算我输 项目的。...目的: 不想为具备相同功能的应用开发做每次的相同代码的编写,再用简洁的风格造轮子。 为了避免大家浪费时间,直接先看下面的 截图,看完后,若你觉得会需要到,那么就请听我继续。 ? ? ? ?...扯下感慨 之前说过的开源IM系统,其实是做好了的,没什么时间写文档,太乱开了也没意义。这次的文章也是挤出时间写的。语言我会尽量做到通俗易懂,少说点废话,谢谢那些一直关注我的同行,定以干货以回报之。...使用方便,下面见解析 低内存占用,提供捞底回收 多接口延伸,例如结果文件路径的返回,和文件的大小 基于 Speex jni 库,高效,自定义语音文件格式 解析 实例: private VoiceRecorderHelper...单位分贝 */ } } ); } 技术点 (可以不看) jni层:编译好 Speex.so

    1.5K80

    iOS Android音频格式的选择

    可选格式 ios android做音频相关的开发时可选用的格式有 mp3,speex,aac,amr,ilbc 已知应用 amr:微信 evemote speex:米聊 文件格式大小 mp3>aac>...amr/ilbc>speex 各个格式简介 amr:生成格式相对较小,Android原生支持,ios可用第三方库进行编码解码 speex:生成文件最小,Android、ios均需要用第三方库进行编码解码...,支持声音的降噪等处理 aac:生成文件相对较大,Android,ios均支持,声音质量较好,比mp3文件小 ilbc:生成文件较小,ios 4.3以上支持,Android早期不支持可用第三方库 mp3...:相比文件最大,比较流行的格式 个人推荐 相比下来,我还是比较推荐用amr格式,网上的教程多,又不像speex一样需要双方都编码解码,生成的文件也较小,比较适合做语音通话

    1.7K20

    Android Studio 对现代 WorkManager 的支持

    在 上一篇文章 中,我们提到了现代 WorkManager API 对工具支持方面也进行了改进,本文我们将结合实际案例来看看具体有哪些改进。如果您更喜欢通过视频了解此内容,请 点击此处 查看。...从 Android Studio Arctic Fox 开始,您可以直接 在 Android Studio 内使用后台任务检查器检查和调试 Worker。...△ 打开 App Inspection 面板 示例演示 本次演示使用了 Android Studio Bumblebee 和 GitHub 上公开的 WorkManager 示例。...△ 使用应用检查器面板的图表视图 您也可以从类似图示的图像中查看整个接续队列的内容。请从中选择一个 Worker,切换到图表视图 (按钮为流程图样式)。...在工作的接续队列中插入了一个出错的 Worker,然后重启应用。可以看到,上一次运行的结果仍然在这里供您检查。这也进一步印证了刚才说到的工作数据持久化特性。

    46720

    让 Android 的 WebView 支持 type 为 file 的 input,同时支持拍照

    Android 的 WebView 组件默认是不启用 type 为 file 的 input 的,需要在代码中做一些类似 hack 的编码(因为解决问题的目标对象的方法都是加了@hide注解的)才能召唤神龙...目标对象:WebChromeClient 实例化一个目标对象,并重写它的几个隐藏方法(针对不同的Android系统版本,方法名和入参都不一样,所以方法有多个),然后将目标对象作为参数传递给 WebView...方法中识别出是执行了拍照选取的流程。...3、addImageGallery 方法的作用是将拍照生成的图片(不是缩略图)添加到相册,保证后续还能从系统中索取到。.../** * 解决拍照后在相册中找不到的问题 */ private void addImageGallery(String path) { if (null == path || "".equals

    1.6K20

    三款RTMP推流模块比较:OBS VS SmartPublisher VS Flash Media Live Encoder

    硬编码),iOS平台支持H.264编码; [音频格式]Windows/Android/iOS平台支持AAC编码,Windows/Android平台支持Speex编码; [音频编码]Windows/Android...平台支持Speex推送、Speex编码质量设置; [音量调节]Windows/Android平台采集端支持实时音量调节(其中,Windows平台混音模式下支持单独控制麦克风、扬声器音量); [H.264...模式设置(需服务器支持); [镜像]Android/iOS平台支持前置摄像头实时镜像功能; [前后摄像头实时切换]Android/iOS平台支持采集过程中,前后摄像头切换; [复杂网络处理]支持断网重连等各种网络环境自动适配...]外部AAC/PCMA/PCMU/SPEEX数据对接; [推送端休眠设置]Windows平台支持休眠接口(设置成休眠模式后CPU会适当降低); [编码后数据输出]Android平台支持输出编码后的H264...跨平台支持 利用 Flash Media Live Encoder 中的扩展支持 — 现在在 PC 和 Mac 平台上可用。

    2K50

    Dagger Android支持库(译文)

    与其他依赖注入框架相比,Dagger 2 最大的优点是他不使用反射,严格的生成实现类,这意味着他可以使用在 Android 应用上。但是在Android上使用仍有一些注意事项。...使用Dagger编写Android应用程序的一个主要困难是,许多Android框架类都由操作系统本身实例化,如Activity和Fragment,但如果Dagger可以创建所有注入的对象,则效果最佳。...即使这是通过接口而不是具体类型完成的,它也打破了依赖注入的核心原则:类不应该知道它是如何注入的。 dagger.android中的类提供了一种简化此模式的方法。...在您自己的代码中创建BroadcastReceiver时,使用构造函数注入。 支持库 对于Android支持库的用户,dagger.android.support 包中存在相同类型。...在Activity中的super.onCreate() 之前调用AndroidInjection.inject() 是至关重要的,因为对 super 的调用会在配置更改期间附加前一个活动实例中的 Fragments

    97830

    Android Studio对ndk开发调试的支持前言支持版本对ndk-build的支持对CMake的支持

    前言 编写C/C++代码最大的痛苦就是语法提示和调试,早期Android Studio对NDK不做支持或者支持得不够好,导致NDK开发异常缓慢,最大的问题是调试,经常一些崩溃问题需要反复的加日志排查。...然而现在Android Studio对NDK的开发和调试都做了比较好的支持(仍然存在一些bug)。下面就来说一下如何进行配置。...支持版本 不太确定是从哪个版本开始支持的,但我当前使用的版本能很好支持: Android Studio 2.2.3 gradle-2.14.1-all.zip //在gradle-wrapper.properties...对ndk-build的支持 如果项目之前使用ndk-build那一套编译方式,即需要Android.mk,那么只要在module下的build.gradle中稍加配置即可集成,例子如下: 1 apply...的更多知识,参考Android.mk语法解释[转] 对CMake的支持 现在AndroidStudio默认对CMake进行支持,例子如下: 1 apply plugin: 'com.android.application

    1.4K20

    让自己的Android应用支持appwidget 博客分类: Android AndroidOSAccessUP

    经常看到一些教程教你如何写appwidget,但是,你知道你的appwidget是如何被添加到桌面上的吗? 一般的,如果是做桌面的童鞋,基本上都会让自己的桌面支持appwidget。...android.view.View; import android.view.ViewGroup; /** * 承载widget的容器 * @author chroya */ public class...; import android.appwidget.AppWidgetHost; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProviderInfo...; import android.content.ComponentName; import android.content.Intent; import android.os.Bundle; import...启动AppWidgetManager.ACTION_APPWIDGET_PICK这个Intent,必须要给列表中加上自己定义的一个选项,否则出错。如本例中是用的Search。 源码见附件。

    1.3K30

    Android注解支持(Support Annotations)

    Android技术文档请参考:https://github.com/rujews/android-tech-docs 注解支持(Support Annotations) Android support...安装到你的SDK中了,那么注解库将会出现在列表中,你只需点击选中它即可(这里是列表中的第一个): ?...v4 support library中的FragmentActivity的示例代码: import android.support.annotation.NonNull; import android.support.annotation.Nullable...@Keep 我们还在注解库里添加了@Keep注解,但是Gradle插件还支持(尽管已经在进行中)。被这个注解标注的类和方法在混淆的时候将不会被混淆。...在你自己的库中使用注解 如果你在你自己的库中使用了这些注解,并且是通过Gradle构建生成aar包,那么在构建的时候Android Gradle插件会提取注解信息放在AAR文件中供引用你的库的客户端使用

    1.2K30

    Android平台RTSP轻量级服务|RTMP推送摄像头或屏幕之音频接口设计

    好多开发者在做Android平台录像或者RTSP轻量级服务、RTMP推送相关模块时,对需要设计哪些常用接口会心存疑惑,本文主要以大牛直播SDK(官方)为例,简单介绍下Android平台直播推送SDK所有音频相关的接口...设置audio编码类型,默认AAC,如需更低的码率,可设置SPEEX编码,一把考虑到录像等操作的通用性,建议选择AAC编码。...设置混音,可用于比如两路音频混音场景,具体可参考一对一互动的demo /** * 设置混音,目前支持两路音频混音 * * @param is_mix: 1混音, 0不混音, 默认不混音...实时静音,实时静音顾名思义,推送过程中,暂停音频推送 /** * Set mute or not during publish stream(设置实时静音) *...20个,可见开发个Android平台RTMP直播推送模块多么麻烦,当然因为本文提到的RTMP推送,实际使用的公司或开发者群体比较大,如果只是项目需求,好多是用不到的,可以适当精简,做个小而美的模块,不失是个很好的选择

    75420

    strictmode android,Android中的StrictMode

    介绍 StrictMode是Android2.3(API9)中引入的一个工具类,继承自Object,它可以检测代码中的一些不规范问题,其实和AS的静态代码检测(Inspect code)挺像的,最常用来捕获应用的主线程上的网络访问或者文件读写操作...,以及一些内存泄漏,而这些耗时操作会影响着应用的性能.严重时会出现ANR,开发中及时发现这些问题,我们可以使用StrictMode,检测出代码中的问题,最终优化改善代码质量; StrictMode主要检测什么....detectAll() .build()); } } 用法: 可以放在Application或者Activity以及其他组件的onCreate方法中调用,我是放在了Activity中的onCreate...中过滤自己的信息,严格模式会上报多种类型的问题,所以我们直接通过筛选StrictMode关键信息; image.png 根据信息提示,我们可以发现一些代码不规范的问题,日志中的~duration=20ms...:1) 只是能看出某一个类发生的内存泄漏,但是并不能找出具体信息,所以,这点严格模式还是满足不了问题排查的;我们可以通过Leaks或者MAT等工具进一步排查; 其实Android手机的开发者模式中,也有严格模式选项

    54720

    创建支持多种屏幕尺寸的Android应用

    多屏支持概述 本节提供了Android支持多屏的概述,包括:介绍了本文中API用到的术语和概念,总结了系统支持的屏设置,概述了API和下面的屏幕兼容特性。...支持的屏幕范围 从Android1.6(API等级为4)开始,Android提供了支持多个屏幕的尺寸和密度,表明一种设备拥有许多不同的屏幕配置。...如何支持多屏 Android支持多屏的基础是它能够以适当的方式为当前屏幕设置管理应用程序的布局和位图绘图的渲染。...然而,为了更好地处理不同屏幕配置,应该: * * 在清单文件中明确申明应用程序支持哪种屏幕大小* 通过申明应用程序支持哪种屏幕尺寸,可以确保只有支持的屏幕尺寸的设备才能下载应用程序。...支持屏幕尺寸的声明 一旦已经实现了不同屏幕尺寸的布局,在manifest文件中声明应用程序支持哪种屏幕也同样重要。

    2.7K60
    领券