vrfvrf
驱动牛犊
驱动牛犊
  • 注册日期2002-11-07
  • 最后登录2003-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3684回复:17

USB Audio firmware

楼主#
更多 发布于:2003-01-17 16:01
各位前辈,大侠,

我在开发一个USB Audio Device, 接了一个8bit 8KHz 的Codec
现在想录音,但声音老是录不进来或是效果很差,不知所以然。

问题一:

PChost <---> USB MCU (firmware) <---> Codec <---->

描述符文件中的speaker和microphone的采样率要描述成16 bit,就可以识别该Audio,如果描述为8bit就不能识别为Audio,我不知道是为什么呢?


问题二:

firmware在PChost 和 Codec之间转发数据的时候,要如何处理数据?

因为我的Codec是8位的,u-Law/a-Law,所以我得到8位数据以后,如何
把它们加工成16bits per sample并发给PCHost呢?
当PCHost给我发回16bits per sample的数据时,我又应该如何把它们转成8bits per sample呢?

问题三:

我用USB snoopy监控,用录音机录了以后再放,PChost收到的从USB发过来的数据流内容(用录音机录)与从PChost发回给USB(用录音机放),发现不一样。因而我需要知道Windows对数据的处理过程,为什么录放的数据会不一样呢?
当用16bit 8KHz录音时我检查.wave文件,其数据与我的MCU发送数据一致,但当用录音机放的时候,用snoopy看到的数据却与录的时候看到的不一样了,象是要经过某种算法的。
这里面应该与Microsoft PCM Converter有比较大的关系,所以我想知道其算法以验证数据传输的正确性。

谢谢!


最新喜欢:

ww7002ww7002
vrfvrf
驱动牛犊
驱动牛犊
  • 注册日期2002-11-07
  • 最后登录2003-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-17 21:40
我大概知道了,应该是要符合AC \'97的标准,但现在我急于想知道的是8 bits 和 16 bits per sample 数据是如何转换的以验证我的数据传输正确性。但我找了很久很久都没找到:-<
vrfvrf
驱动牛犊
驱动牛犊
  • 注册日期2002-11-07
  • 最后登录2003-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-01-18 12:24
好啊,我用的是winbond的,
你知道8bit和16bit是如何转的吗?
你用的是什么codec,你做了数据格式转换吗?
vrfvrf
驱动牛犊
驱动牛犊
  • 注册日期2002-11-07
  • 最后登录2003-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-01-25 13:01
现在我已经可以录音了,虽然效果比较差,是不是还要滤波啊??

请问哪有G.711算法和source code,哪位知道望指引,谢谢!!

vrfvrf
驱动牛犊
驱动牛犊
  • 注册日期2002-11-07
  • 最后登录2003-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-02-12 18:10
有比较明显的背景噪声,怀疑是数据格式不对。

问题如下:

我的codec是A-LAW或U-LAW的,即8bits per sample
但根据AC\'97规范需要16bits?????
所以我的descriptor里描述的是16bits per sample
那么我把codec发过来的8bit的数据按每个字节后面加了个0就发给PC Host了(这是权宜之计),因为我没有G.711
虽然我知道有G711.c,但还是想看看G.711

能不能说说你的心得体会?谢谢!
我发给你的邮件,你没有回吗?
vrfvrf
驱动牛犊
驱动牛犊
  • 注册日期2002-11-07
  • 最后登录2003-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-02-12 18:28
祝新年快乐!^_^
vrfvrf
驱动牛犊
驱动牛犊
  • 注册日期2002-11-07
  • 最后登录2003-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-02-15 15:23
你的邮件地址是什么啊?或者联系电话有吗?

你在描述符里是16位还是8位呢?如果是16位,你有用G.711转换数据格式吗?你所说的Codec工作点是指什么?能解释一下吗?
vrfvrf
驱动牛犊
驱动牛犊
  • 注册日期2002-11-07
  • 最后登录2003-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-11 17:07
至少有两种方法实现,不知道你的需求是什么?
vrfvrf
驱动牛犊
驱动牛犊
  • 注册日期2002-11-07
  • 最后登录2003-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-06-20 17:41
8到16位的转换有现成的在本网站上,或者你在网上找找,sun的就可以了。

所谓两种方法说的是,自定义驱动和标准驱动。

网站的邮件联络好象有点问题,这个要请教站长了。 :cool:
游客

返回顶部