当前位置: 首页 > article >正文

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)


http://www.kler.cn/a/487980.html

相关文章:

  • 软考信安18~网络安全测评技术与标准
  • 51单片机——串口通信(重点)
  • Wsl报 不存在具有提供的名称的分布
  • 单元测试MockitoExtension和SpringExtension
  • ubuntu 20.04 安装 5.4 内核
  • C++ 复习总结记录六
  • 机器学习中特征选择的重要性
  • Springboot Rabbitmq + 线程池技术控制指定数量task执行
  • aspx触发html和ashx的交互
  • flink并行度
  • 软考信安19~操作系统安全保护
  • 记录一下vue2项目优化,虚拟列表vue-virtual-scroll-list处理10万条数据
  • 弹性云服务器和普通服务器的区别
  • likeshop同城跑腿系统likeshop回收租赁系统likeshop多商户商城安装及小程序对接方法
  • 【GIt原理与使用】Git远程仓库
  • 从 C# 和 WPF 转向 Blazor 开发快速精通方法
  • MySQL主从:如何处理“Got Fatal Error 1236”或 MY-013114 错误(percona译文)
  • Java-数据结构-栈与队列(StackQueue)
  • .NET AI 开发人员库 --AI Dev Gallery简单示例--问答机器人
  • 动手学深度学习-深度学习计算-5读写文件
  • 2025年华为OD上机考试真题(Java)——判断输入考勤信息能否获得出勤奖
  • 11 消息机制
  • 优化 Azure Synapse Dedicated SQL Pool中的 SQL 执行性能的经验方法
  • 在爱快iKuai路由系统上添加docker功能!操作很简单
  • 【漫话机器学习系列】041.信息丢失(dropout)
  • Http请求响应——请求