- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从Google的文本到语音服务获取16位PCM数据(24000 Hz),然后将其存储在u8数组中。有没有一种简单的方法可以将其重采样到48000 Hz,而输出是u8阵列?我不了解FFmpeg上的任何在线示例。
现在,我将其包装在游标中以分别读取每个i16,然后将它们分别复制一次(即1234变成11223344)。我的逻辑是,由于原始音频为24000,因此将其翻倍就可以达到48000,对吗?
let mut raw = Cursor::new(raw);
let mut new_samples = Vec::new();
loop {
match raw.read_i16::<LittleEndian>() {
Ok(x) => {
samples.push(x);
samples.push(x);
}
Err(_) => break,
}
}
接下来,我使用猎犬箱将新样本转换为48000 WAV。
let mut new_wav = Cursor::new(Vec::new());
let mut writer = WavWriter::new(
&mut new_wav,
WavSpec {
channels: 1,
sample_rate: 48000,
bits_per_sample: 16,
sample_format: SampleFormat::Int,
},
)
.unwrap();
new_samples
.into_iter()
.for_each(|x| writer.write_sample(x).unwrap());
writer.finalize().unwrap();
现在,new_wav应该具有48000 Hz的音频。但是,这不起作用。使用Discord鸣鸟 crate 播放时,我只是听到一个非常简短的静电:
call.lock().await.play_source(Input::new(
false,
new_wav.into_inner().into(),
Codec::Pcm,
Container::Raw,
None,
));
最佳答案
好吧,我知道了。这就是我做的。
let mut original = Cursor::new(original);
let mut resampled = Cursor::new(Vec::new());
loop {
match original.read_i16::<LittleEndian>() {
Ok(x) => {
// Write it twice
resampled.write_i16::<LittleEndian>(x).unwrap();
resampled.write_i16::<LittleEndian>(x).unwrap();
}
Err(_) => break,
}
}
现在,“重采样”为48000 Hz(并且可以完美播放)。
关于audio - 如何在Rust中将16位PCM音频的采样率从24000 Hz更改为48000 Hz?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66206380/
到目前为止,在我使用 MediaCodec 连接视频的过程中,我终于设法将 48k Hz 音频重新采样为 44.1k Hz。 我一直在测试将视频与两个视频连接在一起,第一个具有 22050 Hz 2
我现在正在尝试编译某人的代码,这个人正在使用变量 HZ(我认为它代表 Hertz,代表 CPU 的赫兹),但编译器提示变量未定义。我猜这个人没有包含正确的头文件。 那么有谁知道HZ是在哪个头文件中定义
在 sched_fair.c 中有: unsigned int sysctl_sched_latency = 5000000ULL //5m unsigned int sysctl_sched_min
我看过这个http://kaasxxx.wordpress.com/2008/01/22/linux-hz-checker/但是脚本似乎不起作用。无论如何知道在 Linux 的终端中检查“HZ”的简单
我正在从Google的文本到语音服务获取16位PCM数据(24000 Hz),然后将其存储在u8数组中。有没有一种简单的方法可以将其重采样到48000 Hz,而输出是u8阵列?我不了解FFmpeg上的
我正在尝试制作一个简单的振荡器程序,我可以在其中更改 Octave 类型,就像 Massive VST 用正数和负数显示它的方式一样: (来源:massivesynth.com) 现在,我知道一个 O
我收到一条消息,该消息从在 ARM 平台上运行的 Linux 应用程序 (Qt C++) 打印出来: Unknown HZ value! (108) Assume 100. 此输出会定期出现在不同
我正在 python 上的 pandas 中开发一个项目。我收到这样的 .csv 文件作为输入: Name Timestamp Data A1 259
我正在使用 Estimote SDK (3.6.0) 与我的信标进行通信。现在我在某处读到,可以获取 5 Hz 信标的广告包。这仅适用于 Estimote 信标还是也适用于其他供应商的信标?在源代码中
音频数据如何下采样到 5512 Hz PCM?我读过一些文章,涉及的步骤是将音频解码为 PCM,将其转换为单声道,然后对其进行下采样。 为了转换为单声道,是否对每帧的 channel 进行平均以获得单
我以大约 50 Hz 的频率(每 0.02 秒一次,正如 Android 所允许的那样...)收集加速度计数据 这是 10 秒数据窗口的幅度图,我想在其上估计功率谱密度: 像这样应用 scipy.si
我有一个传感器,它使用 RS422 通过串口发送消息。 (我认为这是正确的术语。)无论如何,我制作了线束,并将其连接到我的 rs422 到 usb 转换器和 tada,我在 super 终端中获得了数
我一直在使用the Android NDK Camera sample有了它,人们就可以使用 the yuvreader_ inside DrawFrame 读取格式为 AIMAGE_FORMAT_Y
有没有可以读取的全局变量?从 2.6 内核开始,它是可配置的,所以我不能确定是否确实使用了默认值。我正在使用“崩溃”来调试内核核心转储。 最佳答案 它是在编译期间在内核的 .config 中配置的。检
我有 形式的原始音频数据 vector m_shorts; 音频数据为 22050 kHz 单声道。 有人知道我如何(没有任何第三方库)快速将短 vector 转换为 48000 Hz 单声道吗? 我
如何通过ADB shell知道Android内核的HZ值? (没有任何编码) 我检查了How to check HZ in the terminal? ,但这不适用于 Android ADB shel
从 iOS 上的音频流(音乐)获取 Hz 频率值的最佳方法是什么? Apple 提供的最好和最简单的框架是什么?提前致谢。 最佳答案 这是我使用 Accelerate Framework 在 iOS
这就是我所拥有的。它生成 5 秒 Au file具有 440 Hz 正弦波,灵感来自 this question . -- file: tone.hs import qualified Data.By
我目前正在研究 WiFI 的内核源代码(net/mac80211) (三星Galaxy S3---GT-I9300---内核) 我已经看到了如下代码: /* * Scanning implement
我正在使用 ublox NEO-M8N-0-01全局导航卫星系统模块。该模块最高支持 5Hz GPS+GLONASS 和 10Hz GPS。 但是,当我尝试更改采样率(通过消息 View 中的 UBX
我是一名优秀的程序员,十分优秀!