您的位置:首页 > 科技 > 能源 > app运营方案_网络营销方式较为单一_网络营销公司注册找哪家_百度如何收录网站

app运营方案_网络营销方式较为单一_网络营销公司注册找哪家_百度如何收录网站

2024/11/18 8:16:01 来源:https://blog.csdn.net/nonagontech/article/details/143061326  浏览:    关键词:app运营方案_网络营销方式较为单一_网络营销公司注册找哪家_百度如何收录网站
app运营方案_网络营销方式较为单一_网络营销公司注册找哪家_百度如何收录网站

sampleSizeInBits 每个样本的位数

每个样本的位数(sampleSizeInBits)指的是在音频信号中,每个样本的位深度,也就是每个音频样本的数字表示所使用的位数。这一参数直接影响音频的动态范围和音质。常用的为

  • 8位
  • 16位
  • 24位
  • 32位

1. 位深度(Sample Size)

  • 8 位:每个样本用 8 位二进制表示,值范围是 0 到 255(无符号)。这种位深度较低,动态范围和音质也相对较低。常用于低质量或某些特殊应用(例如旧的电话系统)。

  • 16 位:每个样本用 16 位二进制表示,值范围是 -32768 到 32767(有符号)。这是 CD 音质的标准位深度,提供了较好的音质和动态范围。

  • 24 位:每个样本用 24 位二进制表示,值范围是 -8388608 到 8388607(有符号)。提供更高的音质和动态范围,常用于高保真音频录制和处理。

  • 32 位:每个样本用 32 位二进制表示,值范围非常广泛。主要用于专业音频处理和高动态范围应用。

2. 动态范围

位深度越高,每个样本可以表示的音频强度范围(动态范围)就越大。动态范围是指音频中最小和最大声音强度之间的差异:

  • 8 位:动态范围较小,音频质量有限。
  • 16 位:动态范围约为 96 dB,足以满足大多数消费音频的需求。
  • 24 位:动态范围约为 144 dB,适用于需要更高音频质量的专业录音和混音。

3. 音频质量

位深度影响音频的质量和准确性:

  • 低位深度:声音可能会出现量化噪声,细节可能丢失。
  • 高位深度:声音更接近原始录音,细节保留更多,音质更好。

4. 存储需求

位深度也影响音频文件的大小。位深度越大,每个样本所需的存储空间就越多,因此音频文件的整体大小也会增加。例如:

  • 8 位:每个样本 1 字节。
  • 16 位:每个样本 2 字节。
  • 24 位:每个样本 3 字节。
  • 32 位:每个样本 4 字节。

每秒钟的数据量

数据量 = 采样率 × 位深度 × 通道数 × 时间

示例:

假设你有一个采样率为 44.1kHz,位深度为 16 位的音频文件:

  • 采样率:44,100 次采样/秒
  • 位深度:16 位

对于单声道音频: 

数据量 = 44100 × 16 / 8 = 88200 字节/秒 ≈ 86 KB/秒

对于立体声音频(两个声道): 

数据量 = 44100 × 16 × 2 / 8 = 176400 字节/秒 ≈ 172 KB/秒

总结:每个样本的位数决定了音频数据的精度、质量和存储需求。通常选择适当的位深度以满足所需的音频质量和处理需求。

采样率

采样率(Sampling Rate)是音频信号中每秒钟采集的样本数,通常以赫兹(Hz)为单位表示。它是音频数字化过程中的一个重要参数,决定了音频信号的频率响应和音质。

定义
  • 采样率:每秒钟采集的音频样本数量。例如,44.1kHz(即 44,100 次采样/秒)表示每秒钟对音频信号进行 44,100 次采样。

JAVA,以下代码未验证,只对格式进行解析

public class AudioRecorder {// 定义音频格式private AudioFormat getAudioFormat() {float sampleRate = 16000;  // 采样率int sampleSizeInBits = 16; // 每个样本的位数int channels = 1;          // 单声道(1 为单声道,2 为立体声)boolean signed = true;     // 是否使用有符号的音频boolean bigEndian = false; // 是否使用大端字节序return new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);}// 开始录音public void startRecording(String filePath) {AudioFormat format = getAudioFormat();DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);if (!AudioSystem.isLineSupported(info)) {System.out.println("不支持的音频格式");return;}try (TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info)) {line.open(format);    // 打开 TargetDataLineline.start();         // 开始录音System.out.println("开始录音...");AudioInputStream ais = new AudioInputStream(line);// 将音频流写入 WAV 文件File wavFile = new File(filePath);AudioSystem.write(ais, AudioFileFormat.Type.WAVE, wavFile);System.out.println("录音结束,文件已保存到 " + filePath);} catch (LineUnavailableException | IOException ex) {ex.printStackTrace();}}public static void main(String[] args) {AudioRecorder recorder = new AudioRecorder();// 录制 10 秒new Thread(() -> {recorder.startRecording("test.wav");}).start();// 录制 10 秒后停止try {Thread.sleep(10000); // 录制时间 10 秒} catch (InterruptedException ex) {ex.printStackTrace();}System.exit(0); // 退出应用程序}
}

private AudioFormat getAudioFormat() {
float sampleRate = 16000; // 采样率
int sampleSizeInBits = 16; // 每个样本的位数
int channels = 1; // 单声道(1 为单声道,2 为立体声)
boolean signed = true; // 是否使用有符号的音频
boolean bigEndian = false; // 是否使用大端字节序
return new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com