当前位置:   article > 正文

语音处理:Python实现常用音频参数计算_音频的mos值计算python

音频的mos值计算python

语音处理:Python实现常用音频参数计算

背景


语音处理实践中,经常遇到需要根据相关音频信息计算某些常用参数,比如:一帧样点数、一帧比特数、原始码率等,于是将公式固化成脚本,只动一次脑,下次动下电脑就行。

功能实现


参数输入

声道信息

  • 采样率(8/16/24/32/44.1/48/88.2/96/192kHz)
  • 采样位深(16/24/32(整型或浮点))
  • 声道数(1/2/…)

编码信息

  • 帧长(10ms/…)

结果输出

计算单元

  • 计算样点数

  • 计算音源原始码率

  • 计算码率对应比特数

  • 计算比特数到码率

  • 计算音源对应比特数

  • 计算字节数到比特数

  • 计算字节数到码率

  • 持续更新中

源码实现


# 语音处理中,音频常用参数计算


# 计算声道信息下对应样点数
def get_samples_of_audio(sr, ch_num, frame_s):
    samples = sr * frame_s * ch_num
    return samples


# 计算声道信息下不压缩时原始码率kbps
def get_br_of_audio(sr, bit_depth, ch_num, frame_ms):
    frame_s = frame_ms / 1000 
    samples = get_samples_of_audio(sr, ch_num, frame_s)
    total_bits = samples * bit_depth
    bps = total_bits / frame_s
    kbps = bps / 1000
    return kbps


# 计算码率及帧长条件下的比特
def br_to_bits(kbps, frame_ms):
    bits = kbps * frame_ms
    return bits


# 计算比特到码率
def bits_to_br(bits, frame_ms):
    kbps = bits / frame_ms
    return kbps


# 计算字节数到比特数
def byte_to_bit(byte_num):
    bits = 8 * byte_num
    return bits


# 计算比特数到字节数
def bit_to_byte(bits):
    byte_num = bits / 8
    return byte_num


# 计算声道信息下对应比特
def get_bits_of_audio(sr, bit_depth, ch_num, frame_ms):
    kbps = get_br_of_audio(sr, bit_depth, ch_num, frame_ms)
    bits = br_to_bits(kbps, frame_ms)
    return bits


# 计算字节数到码率,字节数为压缩后的1帧字节流大小,码率为压缩后的实际码率
def bytes_to_br(byte_num, frame_ms):
    bits = byte_to_bit(byte_num)
    kbps = bits_to_br(bits, frame_ms)
    return kbps
    

# 计算码率到字节数
def br_to_bytes(kbps, frame_ms):
    bits = br_to_bits(kbps, frame_ms)
    byte_num = bit_to_byte(bits)
    return byte_num


# 参数输入
sr = 96000
bit_depth = 24
ch_num = 2
frame_ms = 10


# 调用举例
kbps = get_br_of_audio(sr, bit_depth, ch_num, frame_ms)
print('{}kbps'.format(kbps))
bits = get_bits_of_audio(sr, bit_depth, ch_num, frame_ms)
print('{}bits'.format(bits))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/101316?site
推荐阅读
相关标签
  

闽ICP备14008679号