V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pipixiarwksb
V2EX  ›  外包

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

  •  1
     
  •   pipixiarwksb · 184 天前 · 1074 次点击
    这是一个创建于 184 天前的主题,其中的信息可能已经有所发展或是发生改变。

    通过 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  
       184 天前
    udp 发的?乱序或者丢包了吧
    客户端发送时写入文件,服务端收到也写入文件,然后用 BC 十六进制对比一下差异
    dode
        2
    dode  
       184 天前
    记录首发 HEX 原始数据,对比差异,这个要多少带宽,中途 TC 连接要是断了怎么办?

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

    还有个问题 网络通信为啥直接 pcm ,节省带宽最好 opus 编码下发
    xsen
        12
    xsen  
       181 天前
    1. 服务端保存为 pcm ,用 vlc 看播放是否有问题
    2. 确认包是否完整—就是对整个 pcm/wav 文件做 MD5 ,接收后确认 MD5 值是否一样
    3. 确认写入的采样率、通道数是否一致
    EvaDan
        13
    EvaDan  
       179 天前
    @pipixiarwksb 前面有个哥们说的对 wav 文件的需要文件头信息来表明怎么解析后续的数据格式,不然播放器解析不了。PCM 就是纯数据,不带格式。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1030 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 22:07 · PVG 06:07 · LAX 14:07 · JFK 17:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.