pipixiarwksb
V2EX  ›  外包

关于音频问题,有偿请教问题,对我过于难了。

  •  1
     
  •   pipixiarwksb · May 25, 2024 · 1524 views
    This topic created in 897 days ago, the information mentioned may be changed or developed.

    通过 socket 发送原始 pcm 数据,格式如下 Sample Rate: 48000.0 Channel Count: 2 Common Format: PCM Float32

    pcm 数据发送的: (0x10529da40: 3840/3840 bytes)

    在 python 服务端接收数据时,直接写入 wav 文件,背景有声音,但是噪声很大,这应该怎么处理,客户端写入文件时是没问题的。如有大佬知道能解决问题,200 元给大佬喝茶!!!还望大佬能指点一二!!!

    13 replies  •  2024-05-30 16:47:57 +08:00
    a33291
    a33291
    May 25, 2024
    1
    udp 发的?乱序或者丢包了吧
    客户端发送时写入文件,服务端收到也写入文件,然后用 BC 十六进制对比一下差异
    dode
    dode
    May 25, 2024
    2
    记录首发 HEX 原始数据,对比差异,这个要多少带宽,中途 TC 连接要是断了怎么办?

    客户端写好文件,再用程序发到服务器吧
    iOCZS
    iOCZS
    May 25, 2024
    3
    两端收发的文件是否一致啊
    pipixiarwksb
    pipixiarwksb
    OP
    May 27, 2024
    4
    @a33291 tcp 协议
    @dode 要求一定的实时性,没法写入文件再发到服务器
    @iOCZS 这个怎么做啊,因为我服务端是一直再接收,客户端可以随时停掉,怎么才能确保两边同时停止写入文件
    ziding
    ziding
    May 27, 2024
    5
    1. 对比两端的 wav 文件
    2. 播放的设置是否搞对了?有点像采样率没搞对的情况
    jifengg
    jifengg
    May 27, 2024
    6
    wav 文件头写了吗?
    pipixiarwksb
    pipixiarwksb
    OP
    May 27, 2024
    7
    @jifengg 头是啥,还要写头?
    @ziding 采样率是 48000.0
    dode
    dode
    May 27, 2024
    8
    客户端传输数据时,TCP 连接断掉了怎么办?
    客户端一个线程直接边写文件,一个线程边读取这个文件,发送到服务器。
    dode
    dode
    May 27, 2024
    9
    现有程序执行时,占用多大网络带宽?
    jifengg
    jifengg
    May 27, 2024
    10
    wav 文件头,包含了你说的 PCM 格式描述:
    “Sample Rate: 48000.0 Channel Count: 2 Common Format: PCM Float32”
    以及其他信息,如果没有这些信息,用播放器直接播放 wav 文件,要么不能播,要么按默认参数播
    csulyb
    csulyb
    May 27, 2024
    11
    思路:
    1.服务器端直接把 pcm 存下来,然后用播放器比如 audacity 播放看看正常不
    a.正常就是你 wav 的头不对,自己对着 wav 的头修改下。
    b.不正常的话,注意下音频数据存储用哪个,float 还是 int16 ?

    还有个问题 网络通信为啥直接 pcm ,节省带宽最好 opus 编码下发
    xsen
    xsen
    May 28, 2024
    12
    1. 服务端保存为 pcm ,用 vlc 看播放是否有问题
    2. 确认包是否完整—就是对整个 pcm/wav 文件做 MD5 ,接收后确认 MD5 值是否一样
    3. 确认写入的采样率、通道数是否一致
    EvaDan
    EvaDan
    May 30, 2024
    13
    @pipixiarwksb 前面有个哥们说的对 wav 文件的需要文件头信息来表明怎么解析后续的数据格式,不然播放器解析不了。PCM 就是纯数据,不带格式。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4550 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 08:19 · PVG 16:19 · LAX 00:19 · JFK 03:19
    ♥ Do have faith in what you're doing.