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)
相关推荐
独断万古他化几秒前
Python 接口测试之 requests 库核心用法
python·pytest·接口测试·requests
白中白121382 分钟前
杂七杂八补充系列
开发语言·前端·javascript
E_ICEBLUE3 分钟前
Excel 删除空白行的 5 种方法 【手动管理与 Python 自动化】
python·自动化·excel
佩奇大王4 分钟前
P8 单词分析
java·开发语言
飞Link5 分钟前
概率图模型的基石:隐马可夫模型 (HMM) 深度解析
开发语言·python·算法
Sagittarius_A*5 分钟前
小波变换:多分辨率分析与图像小波去噪 / 增强 / 融合【计算机视觉】
图像处理·人工智能·python·opencv·计算机视觉·小波变换
PPPPickup6 分钟前
小公司初面---java后端题目
java·开发语言·哈希算法
鸿乃江边鸟6 分钟前
Rust 的 mod(模块) 说明
开发语言·后端·rust
creaDelight6 分钟前
编写你的第一个 Django 应用(官网demo)
python·django·sqlite
喵手7 分钟前
Python 爬虫实战:利用 Playwright 攻克 Canva 动态设计模板库
爬虫·python·爬虫实战·playwright·canva·零基础python爬虫教学·搭建动态设计模版库