关于音频问题,有偿请教问题,对我过于难了。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pipixiarwksb

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

  •  1
     
  •   pipixiarwksb 2024 年 5 月 25 日 1305 次点击
    这是一个创建于 700 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    还有个问题 网络通信为啥直接 pcm ,节省带宽最好 opus 编码下发
    xsen
        12
    xsen  
       2024 年 5 月 28 日
    1. 服务端保存为 pcm ,用 vlc 看播放是否有问题
    2. 确认包是否完整就是对整个 pcm/wav 文件做 MD5 ,接收后确认 MD5 值是否一样
    3. 确认写入的采样率、通道数是否一致
    EvaDan
        13
    EvaDan  
       2024 年 5 月 30 日
    @pipixiarwksb 前面有个哥们说的对 wav 文件的需要文件头信息来表明怎么解析后续的数据格式,不然播放器解析不了。PCM 就是纯数据,不带格式。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1292 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 49ms UTC 17:24 PVG 01:24 LAX 10:24 JFK 13:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86