[英]How can i play raw samples PCM_16 audio data record from Android in Web (using Web-Audio or other)?
[英]Upsampling of PCM audio samples in Android
我正在从android应用程序中的蓝牙耳机读取音频样本。 蓝牙SCO以8KHz的音频IN采样频率工作。 但是我需要来自蓝牙耳机的16KHz音频样本,因此我需要使用上采样。
我在这里以及其他网站上搜索了有关Android上的升频的信息,但没有用。 如果有人知道用于预采样的预定义Java库,请回答我的问题。
如果您请求16 kHz,则应该自动进行升采样,除非所测试的设备对音频HAL / audioflinger的实现有些奇怪。
如果您请求输入设备不支持的采样率,将会(应该)发生的事情是,音频HAL将返回一个错误代码,直到Audioflinger并建议要使用的采样率。 反之,audioflinger会尝试以支持的采样率打开输入流,并在内部进行重采样,以便应用程序以其请求的速率获取音频数据。
只要请求的采样率不大于支持的采样率的两倍,它就应该起作用,因此8-> 16 kHz的上采样应该起作用。 此升采样的质量是否足够好,您需要自己判断。
最简单的方法就是复制每个值并使频率翻倍。 这不会改善声音质量,但也不会使声音质量变差。 这类似于您可以将图像放大到更高的分辨率。 如果不进行过滤,只要您按小数比例进行放大,它看起来就不会更糟,但也不会更好。
您能分辨出这张图片的区别吗?
和这个?
第二张图像实际上是分辨率的两倍,但外观相同。
只要您缩放具有非小数的声音(或图像),就不会引入缩放伪影。
但是,如果您想要平滑上采样的声音,则有各种提示:
https://ccrma.stanford.edu/~jos/resample/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.