python 生成24bit音频数据实例解析

一 概念

24 bit 是指音频文件的 采样深度 (bit depth)。 它代表了每个采样点的数据精度,也就是音频每个样本所使用的比特数。 24 bit 的采样深度相较于 16 bit 提供了更高的动态范围和更精确的音频信息表示。 动态范围:24 bit 的动态范围大约为 144 dB,而 16 bit 的动态范围约为 96 dB。 目前,24bit音频数据成为了很多硬件的标配。

二 源码

直接上源码:

复制代码
import wave, struct, math, random
import serial
import numpy as np
import struct
import operator
import binascii

sampleRate = 96000.0 # hertz
obj = wave.open('sound_96k_b.wav','w')
obj.setnchannels(1) # mono
obj.setsampwidth(3)
obj.setframerate(sampleRate)

fp = open("test.bin",'rb')
def bin_file_process(fp):
    cnt=0
    while True:
            data=fp.read(1)
            if data == b'':
                break

            if data == b'\xff':
                    data_next=fp.read(1)
                    #print("hello world")
                    if data_next == b'\xff':
                        cnt += 1
                        data_lens=fp.read(2)
                        print("read data_cnt is:",cnt)
                        data_audio=fp.read(1920)
                        count=len(data_audio)
                        for idx in range(0,len(data_audio),3):
                            raw_data = data_audio[idx:idx+3]
                            obj.writeframes(struct.pack('B',raw_data[0]))
                            obj.writeframes(struct.pack('B',raw_data[1]))
                            obj.writeframes(struct.pack('B',raw_data[2]))



if __name__ == '__main__':
    bin_file_process(fp)
相关推荐
打工仔折腾 AI2 分钟前
工业场景下时序库与实时计算一体化架构选型实践对比
java·开发语言·后端·python·性能优化·架构·ai agent 实战
ZealSinger9 分钟前
Java虚拟线程上线后瓶颈转移到哪看三层
java·开发语言·firefox
梦幻精灵_cq28 分钟前
sumdir——一个伪python.built-in的“术法”打造
python
weixin_440730502 小时前
函数return、参数、参数组、递归函数、高阶函数等小结
开发语言·python
天赐范式2 小时前
天赐范式第181天:让视图开始切换——PBFT视图切换与从safety到liveness的跨越
python·pbft·数字生命·天赐范式·动态运行时·拜占庭容错
码上观世界2 小时前
一张图 + 一段音频,生成口型同步、有表情的数字人
音视频
sugarzhangnotes2 小时前
【无标题】
开发语言·人工智能·python
geovindu2 小时前
rust: Composite Pattern
开发语言·后端·设计模式·rust·组合模式
weixin_447195293 小时前
【无标题】
pytorch·python
迅猛龙办公室3 小时前
Python实现简单的人名对话
python