我注意到android.media.AudioRecord使用错误时无法正常工作sampleRateInHz
您还可以使用Samsung Nexus S(Google)上的pcmrecorder轻松复制该问题:
https://market.android.com/details?id=com.kohei.android.pcmrecorder
http://ko-yasui.com/home/pcmrecorder/
因此,当硬件音频芯片支持高达96KHz时,它无法以48Khz记录:
http://www.wolfsonmicro.com/products/audio_hubs/WM8994/
这是设备/固件错误还是已知限制?
请注意,android平台只能确保大约44100Hz(甚至不是24KHz)
http://developer.android.com/reference/android/media/AudioRecord.html
sampleRateInHz:采样率以赫兹表示.44100Hz是目前唯一保证在所有设备上工作的速率,但其他速率如22050,16000和11025可能适用于某些设备.
您将找到一个示例代码来重现这些问题:
https://github.com/rzr/rzr-android-test/blob/api-android-media/src/fr/online/rzr/test/
如何克服这个限制?
可以使用任何其他API吗?opensl,alsa,openal?如何 ?
alsa驱动程序可以从用户端重新配置,以便能够在44100Hz以上采样?(.asoundrc)
是否可以在不重新刷新/生根/重启设备的情况下执行此类操作
否则如何解决这个问题?使用本机代码有效地进行上采样(插值)?
任何人使用ffmpeg
我有一个相当简单的wmv用户从电影制作者用标准输出导出并希望转换为.flv使用
C:> ffmpeg -i"E:\ Jab Core 4 Recounters.wmv"-vcodec flv"C:\ Net Projects\SVN\IntegratedAlgorithmics\src\MediaAdmin\MediaAdmin\bin\Debug\Movies\Jab Core 4 Recounters.flv" -ar 44100
我收到的输出/错误是
FFmpeg version 0.5, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-postproc --enable-swscale --enable-avfilt
er --enable-avfilter-lavf --enable-pthreads --enable-avisynth --enable-libfaac -
-enable-libfaad --enable-libmp3lame --enable-libspeex --enable-libtheora --enabl
e-libvorbis --enable-libxvid --enable-libx264 --enable-memalign-hack
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 0 / 52.20. 0
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 4. 0 / 0. …Run Code Online (Sandbox Code Playgroud) 音频文件的样本包含什么?
当我运行命令"sox file.wav -r 10 file.dat"时,输出就像
; Sample Rate 10
; Channels 2
0 0.00085449219 -0.0007019043
0.1 0.01348877 -0.011260986
0.2 0.015930176 -0.013214111
0.3 0.014923096 -0.012390137
... ... ...
Run Code Online (Sandbox Code Playgroud)
我知道第一列是第二列和第三列代表2个通道的时间.
但我想知道通道值包含什么?
我需要使用 pygame 播放这个 mp3 文件,但我不知道文件的采样率是多少。我需要某种方式以编程方式获取音频文件的采样率,以便我可以以正确的速率播放它,因为如果我不这样做,它只会使声音失真。谢谢你的帮助
我正在使用Windows waveOut API(又名MME或多媒体扩展)mmsystem.h。某些程序会更改音频播放采样率(例如,从44.1kHz更改为48kHz),这对于我的程序检测当前播放采样率非常有用,因此它可以警告用户Windows将重新采样程序的输出。
根据此文档http://msdn.microsoft.com/zh-cn/library/aa909811.aspx,waveOutGetPlaybackRate返回设备当前正在执行的重采样百分比(例如,设备以44.1播放,程序以44.1播放音频因此它将返回1.0)。我很好奇是否有一种方法可以获取设备的绝对采样率,而不是相对的。在Windows Vista / 7/8中,您可以通过以下方式手动找到该值:控制面板>声音>播放,右键单击默认播放设备,然后选择属性,然后选择高级选项卡。因此,我试图通过查询操作系统来获取此“默认格式”值。
有问题的程序是用Pascal编写的,但是,我通常使用C / C ++引用。
我有上千个音频文件,我想检查它们的采样率是否为16kHz。手动执行此操作将花费我一生。有没有一种方法可以使用python检查采样率。
当您创建新设备时,AudioContext它将采样率设置为默认输出设备。这是预期的默认行为。有谁知道是否有什么方法可以在Javascript中获取输入设备的采样率?
我们可以在AudioContext的文档中看到它说的是sampleRate
该值通常在 8,000 Hz 到 96,000 Hz 之间;默认值会根据输出设备而有所不同,但采样率 44,100 Hz 是最常见的。如果选项中未包含sampleRate属性,或者在创建音频上下文时未指定选项,则默认使用新上下文的输出设备的首选采样率。
我如何使用它的示例:
const stream = await navigator.mediaDevices.getUserMedia({audio: true, video: false});
const context = new AudioContext();
context.sampleRate // This is the default output device's sample rate. I need the default input sampleRate
Run Code Online (Sandbox Code Playgroud)
我一直在搜索文档和互联网以寻找实现此目的的方法,但没有找到任何有用的东西。感谢任何帮助。
sample-rate ×7
audio ×3
python ×2
alsa ×1
android ×1
audiocontext ×1
audiorecord ×1
c++ ×1
ffmpeg ×1
javascript ×1
nexus-s ×1
pascal ×1
raspberry-pi ×1
sox ×1
waveout ×1
windows ×1