标签: sample-rate

如何在 AVCaptureSession 上设置音频采样率?

我正在使用AVCaptureSession使用AVCaptureVideoDataOutputAVCaptureAudioDataOutput将视频和音频录制到示例缓冲区中。

iPhone(4 和 4S)的默认音频采样率为 44100Hz。我想将其设置为 48000Hz,但是 AVCaptureSession 似乎没有任何音频采样率设置。

我曾尝试使用AVAudioSession来更改硬件采样率(使用 setPreferredHardwareSampleRate),但尽管它报告硬件采样率已更改(激活会话后),但这不会影响我在 AVCaptureAudioDataOutput 的示例委托中获得的实际采样率。

有没有办法从 AVCaptureSession 本身设置音频采样率?

audio sample-rate ios avcapturesession

6
推荐指数
1
解决办法
2177
查看次数

Pydub 按样本切片音频段

假设我有两个相同采样率的音频段,它们是从 Pydub 中的 .wav 文件导入的,并假设我知道哪个更短。现在假设我想将较长的音频文件分成两段,以便第一段与较短的音频文件具有完全相同的长度(下降到完全相同的样本数!)并将这两个段中的每一个分配给新的音频段. 我怎样才能在 Pydub 中做到这一点? 如果我不能使用 Pydub 达到这种精度水平,你能给我一个同样有效的替代方案吗?

基本上我只想在样本完美级别将较长的音频片段分成两部分。这是我想要的插图: 在此处输入图片说明

python audio sample-rate python-3.x pydub

6
推荐指数
1
解决办法
1233
查看次数

iOS:音频单位:设置任意采样率

我可以设置我想要的任何采样率吗?有什么限制?

硬件采样率如何?一旦确定,单位之间传递的内部采样率有什么限制?

我猜测实际的硬件速率可能必须是44.1KHz的一些位移,并且任何内部采样率必须是该原始值的向下位移(例如22.1KHz,11.05KHz).这很接近吗?

据我了解,
1.我从音频会话中设置硬件采样率.
2. 系统会将采样率设置尽可能接近我指定的采样率.
3.然后我查询音频会话以查找我设置的相同属性,这将为我提供它正在使用的实际采样率

在音频单元级别,特别是RemoteIO单元,文档说明单元连接到硬件的两个点(即麦克风(输入)总线的输入范围和扬声器(输出)总线的输出范围) ,可以检索采样率但 设置.

但是,我尝试在构建远程I/O单元时访问此值,并返回零.我想也许我需要启动该单元才能从其连接中获取有意义的数据(启动它的行为可能会创建连接).所以这里的解决方案似乎是从音频会话中获取采样率并使用它,如上所述.

需要标签:音频单元

core-audio sample-rate audiounit ios

5
推荐指数
1
解决办法
4126
查看次数

Android AudioRecord的问题?

我一直在搞乱Android API的AudioRecord功能,并发现了一些奇怪的行为.

背景信息:我的手机是HTC Incredible我使用Eclipse插件进行Android开发与模拟器.目标平台或操作系统是2.2 ...因为它是我的手机使用的.

一些代码:

bufferSize = AudioRecord.getMinBufferSize(FREQUENCY, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, FREQUENCY, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize);
Run Code Online (Sandbox Code Playgroud)

这是我用来设置AudioRecord API的代码.现在,对于模拟器,它将FREQUENCY设置为8000以使其工作.回来的缓冲区大小为640.对于手机,我使用44100.这里的一个问题是看起来波形的PCM数据似乎是8位有符号波.我得到的值从-127到128.我认为价值AudioFormat.ENCODING_PCM_16BIT会产生不同的东西.

我用线程处理音频,

public void run() {
  while(isRecording) {
    audioRecord.startRecording();
    byte[] data = new byte[bufferSize];
    audioRecord.read(data, 0, bufferSize);
    listener.setData(data);
    handleData(data);
  }
  audioRecord.release();
}
Run Code Online (Sandbox Code Playgroud)

我有一种方法可以使用a以图形方式实时显示相应的波形SurfaceView.MIC似乎有很多噪音.我也从模拟器和手机中得到了这个噪音.我是否需要通过某种过滤器运行数据?我想用这些数据计算一些有趣的FFT和东西只是为了解决这个问题.但我需要以某种方式减少噪音.

有没有其他人经历过这一点.有没有人有办法解决吗?

我很感激你的时间和回应,谢谢,dk

audio android pcm sample-rate audiorecord

5
推荐指数
3
解决办法
2万
查看次数

用于音频数据的采样率转换的库?

什么是用于音频数据采样率转换的优秀Delphi库?我不介意付钱买东西.

我需要实时上采样和下载示例音频.我理解这个理论,但不想写我自己的惯例.

编辑:Mac支持的东西的奖励积分.

delphi signal-processing sample-rate

5
推荐指数
1
解决办法
1575
查看次数

为什么 MATLAB 在尝试采集数据时会改变采样率?

我正在使用带有数据采集工具箱的 32 位 Matlab 中的 DataQ 采集设备。

有时,当我将采样率设置为 300 时,它会告诉我:

警告:此硬件无法支持请求的 SampleRate 值 300。采样率已设置为 1000"

但是,如果我将 SampleRate 设置为 1000,它有时会将其设置回 300,并显示相同的错误消息。

此外,如果我设置程序,以便在错误显示并且设备开始记录后它返回 SampleRate,这始终是我设置的任何值,而不是程序声称将其更改为的值。

任何人都知道我如何找出实际采样率或防止它重置我的采样率?我需要知道每秒有多少样本以进行进一步计算。

matlab sample data-acquisition sample-rate

5
推荐指数
1
解决办法
538
查看次数

流媒体时iPhone 6S音频问题

我开发了一个带有实时视频流的iOS应用程序.我将音频采样率固定为8k.音频在iPhone6设备上运行良好,但是当我在6s和6s中流式传输视频时,音频部分无效.我该如何解决这个问题?我尝试在不同的博客中发现,在iPhone 6s中,采样率锁定在48k.我该如何手动下采样?因为我用于直播的图书馆只能用于8k.请帮我解决这些问题

iphone audio-recording sample-rate ios

5
推荐指数
1
解决办法
411
查看次数

如何在 Avfoundation 中正确更改采样率

我已经完成了这个简单的程序。它所做的只是同时记录和回放缓冲区。如果采样率为 44100 hz,一切正常,但如果我将采样率更改为 16000 或 8000,它根本不会产生任何声音,或者可能是一些听不见的白噪声。为什么会发生这种情况?

如何以不同的采样率进行录制?

以下代码我试过:

import UIKit
import AVFoundation

class ViewController: UIViewController  {

var engine = AVAudioEngine()
let player = AVAudioPlayerNode()
let audioSession = AVAudioSession.sharedInstance()
let newSrc:UnsafeMutablePointer<Float>! = nil
override func viewDidLoad() {
super.viewDidLoad()



let audioSession = AVAudioSession.sharedInstance()
print(audioSession.sampleRate) // here it prints 44100 hz. because it still using the internal mic.
do {

    try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, with: .allowBluetooth)
    try audioSession.setMode(AVAudioSessionModeDefault)
    try audioSession.setActive(true)

} catch {
}
print(audioSession.sampleRate) // here it will print 16000 hz if my bluetooth …
Run Code Online (Sandbox Code Playgroud)

audio avfoundation sample-rate ios swift

5
推荐指数
1
解决办法
3331
查看次数

如何在Linux上将麦克风采样率更改为16000?

我目前正在开发一个项目,我尝试在树莓派上使用 Deepspeech,同时使用麦克风音频,但我不断收到无效采样率错误。使用 pyAudio 创建一个流,它使用模型想要的采样率,即 16000,但我使用的麦克风的采样率为 44100。运行 python 脚本时,不会进行速率转换,并且麦克风采样率和预期模型的采样率会产生无效采样率错误。

pyaudio 列出的麦克风信息如下:

{'index': 1, 'structVersion': 2, 'name': 'Logitech USB Microphone: Audio (hw:1,0)', 'hostApi': 0, 'maxInputChannels': 1, 'maxOutputChannels': 0, 'defaultLowInputLatency': 0.008684807256235827, 'defaultLowOutputLatency': -1.0, 'defaultHighInputLatency': 0.034829931972789115, 'defaultHighOutputLatency': -1.0, 'defaultSampleRate': 44100.0}
Run Code Online (Sandbox Code Playgroud)

我尝试的第一件事是将 pyAudio 流采样率设置为 44100 并将其输入模型。但经过测试,我发现当模型得到的速率与要求的 16000 不同时,该模型就无法正常工作。

我一直在尝试找到一种方法让麦克风的变化率达到16000,或者至少在python脚本中使用时将其变化率转换为16000,但没有成功。

我尝试的最新方法是更改​​ .asoundrc 文件以找到更改速率的方法,但我不知道是否可以在该文件中将麦克风的速率更改为 16000。该文件当前的样子如下:

pcm.!default {
        type asymd
        playback.pcm
        {
                type plug
                slave.pcm "dmix"
        }
        capture.pcm
        {
                type plug
                slave.pcm "usb"
        }
}

ctl.!default {
        type hw
        card 0
}

pcm.usb {
        type hw
        card 1 …
Run Code Online (Sandbox Code Playgroud)

python linux sample-rate pyaudio

5
推荐指数
1
解决办法
4236
查看次数

iOS 支持的麦克风采样率

我正在尝试查找通过麦克风录制音频时所有 Android 和 iOS 设备支持的采样率。

在 Android 上,文档明确指出 44,1 kHz 是目前保证在所有设备上工作的唯一值(链接)。

但是,我找不到任何有关 iOS 的信息。我找不到任何适用于所有设备的具体价值。据我了解,较新的 iPhone 目前默认使用 48 kHz。我可以按照 Stack Overflow 问题链接中的建议重新采样音频。

是否有任何值可以保证所有 iOS 设备都支持?

microphone sample-rate ios

5
推荐指数
0
解决办法
338
查看次数