你错啦,qq是一种典型的互联**钱模式。

[复制链接]
57688|214
wangkj 发表于 2008-12-31 09:27 | 显示全部楼层

咱的群有记录功能,群成员都能看到所有的对话记录

  
xwj 发表于 2008-12-31 09:57 | 显示全部楼层

关于 语音压缩方案:

我的想法就是直接用STM32实时压缩、解压!<br />而且利用芯片集成的ADC、PWM直接输入音频,输出给功放、喇叭<br /><br /><br />ADPCM&nbsp;的运算量其实是非常小的,基本上随便找个单片机都可以达到实时<br />而为了降低数传的数据量,我的想法是先做频域转换,然后用哈夫曼编码打包成帧,压缩率绝对比ADPCM&nbsp;高的多。<br />只要频域变换的时间别太长,这点运算STM32&nbsp;应该是能满足的,如果满足不了在考虑用简单的算法,比如ADPCM<br /><br /><br />对讲机本身就体积有限,不能做的太大,所以能少个芯片就尽量少一个,能怎样省电就尽量省电,这才是我最初建议用STM32的初衷<br /><br />
xwj 发表于 2008-12-31 10:13 | 显示全部楼层

DIY活动的推广价值非凡,我们用STM32,香水城应该可以提供芯片

DIY活动的意义在于鼓励大家参与,推广价值是不可限量的,<br />想想:<br />只要活动成功,那可以吸引来多少人气?多少眼光?&nbsp;带来多少潜在的用户啊???<br /><br />21ic对于DIY活动是相当支持的,可以提供部分经费,大家打PCB什么的就不用钱了;<br />如果STM32再提供主芯片的赞助,就只要解决射频IC、电池等其他问题了<br /><br />对于初学者根本就不用花多少钱,就可以享受到DIY的乐趣,跟着高手学到相当实用的知识,想想谁不动心?<br /><br />对于真正的芯片厂家,只要大家都用他的IC,特别是发展出新的应用方向、领域,并发展、培养出一大批使用中,免费赞助点芯片又何乐而不为呢???<br /><br /><br />
xwj 发表于 2008-12-31 10:22 | 显示全部楼层

而对于真正想吸收人才的

通过DIY活动,<br />来发现技术高、能力强的高手<br />来发现人品好、组织能力强的管理者<br />来发现学习能力好、动手能力强,善于思考、学习的初学者(有潜力啊),<br />又何乐而不为??<br /><br /><br />对于我们搞技术的,<br />通过DIY活动,有技术的Show技术,有能力的Show能力,有激情的乐在参与,好学的学到知识,好玩的玩的痛快,好灌水的放开评论...<br /><br />这么开心好玩的事,又何乐而不为呢???
PowerAnts 发表于 2008-12-31 10:25 | 显示全部楼层

这个办法做推广好

给俺们老板建议一下,俺来主持一个游戏方案DIY,让未来的电工们都玩玩俺们的游戏IC,以后或许会带来一大堆用户...
zhiganglet 发表于 2008-12-31 10:37 | 显示全部楼层

to 老创

&nbsp;&nbsp;&nbsp;&nbsp;我把这些贴上来是想告诉大家我们这个DIY小组的组员都是很真诚的参与这个项目的,大家互助共享,围着共同的兴趣走到一起,在这里不仅仅能练习技术,还可以学到很多很多技术外的东西,希望更多的爱好者加入到我们小组来,噢耶!
香水城 发表于 2008-12-31 11:19 | 显示全部楼层

谢谢xwj这个非常好的提议,俺时刻在关注着大家的讨论

期待项目成功。
wenyin 发表于 2008-12-31 11:33 | 显示全部楼层

不懂,顶一下

  
isbit 发表于 2008-12-31 11:42 | 显示全部楼层

支持软件压缩

支持adpcm&nbsp;软件压缩,能软件实现的尽量<br />不用硬件实现!
 楼主| 创意之都 发表于 2008-12-31 11:51 | 显示全部楼层

关于 单片机选型问题再讨论--ST ARM

TO&nbsp;<br />&nbsp;&nbsp;香水城<br />&nbsp;&nbsp;xwj&nbsp;<br />&nbsp;&nbsp;负分<br /><br />&nbsp;&nbsp;首先感谢各位的关注和参入!<br /><br />&nbsp;&nbsp;我也很高兴我们的活动获得了越来越多的正面评价,加油啊,数字对讲机项目成员全体!实现我们的目标,享受我们的快乐!<br /><br />&nbsp;&nbsp;单片机的选型,我们是开放的,综合了各种因素:<br />&nbsp;1.适合广大的爱好者,入门者<br />&nbsp;2.这是一个数字对讲机+单片机开发板的载体,适合,并可以发挥就可以了。<br />&nbsp;3.开发学习成本的考虑,我们的目标是只要有一台电脑,就可以开发,整个开发环境+开发板,最多不超过100元。但也不会降低开发的难度和乐趣。<br />&nbsp;4.这是我们的第一个diy项目,不能承载太多的东西。如果有机会再开发,我们可能会选择难度更高的ARM+DSP体系结构玩一些更高深的东西,希望到时候大家不要退却哦。<br />&nbsp;5.深入搞过嵌入式的都明白,51,avr,arm,mips,ppc,x86没有本质的不同,只是处理的对象,达到的目的不一样。要是做深入了你也可以做个私人操作系统在51上跑跑。<br /><br />&nbsp;另外我们欢迎各处理器的代理商和我们合作,不止是提供样品,最好是能够以学生价提供给爱好者,解决广大爱好者的口袋问题。<br /><br /><br /><br /><br /><br />
gyt 发表于 2008-12-31 12:13 | 显示全部楼层

支持支持!

  
yanxh_ic 发表于 2008-12-31 15:54 | 显示全部楼层

关于语音压缩方案

大家好,我是南京梧桐微电子,www.indusic.com,从事国产声码器和codec芯片设计的。关于数字对讲机的语音压缩方案,我们认为:<br />1.实用的产品化的数字对讲机,必须进行低码率的数字语音压缩,进行窄带语音传输。数字对讲机的带宽6.25K,在这个带宽范围内,如果不做声码化,以64Kbps为例,该采用怎样的调制解调方式才能保证一定距离的可靠传输呢?即使有,又能在合法的功率限制内传输多远?<br />2.单片机自带的AD/DA跟语音Codec是两回事。单片机自带的AD/DA大多是10-12bit的SAR型的,这种AD/DA大多用来做数据采集和波形发生。而语音Codec大多是16bit以上的,采用Δ-Σ算法的信号处理电路,具有噪声抑制和带通滤波的能力。如果直接用单片机的AD/DA,首先噪声就会很大,语音质量也不好。<br />3.目前专业的数字对讲机,如moto,Icom均有声码化算法包含其中,采用窄带方案。<br />以上看法供参考,我希望能够加入这个项目,为这个项目提供免费的声码器芯片。我的联系:yanxh_ic@yahoo.com.cn。<br />
rkw123 发表于 2008-12-31 22:25 | 显示全部楼层

支持一下

新手看看楼主的规划<br />希望能像linux的开发过程学习一点
 楼主| 创意之都 发表于 2009-1-1 10:19 | 显示全部楼层

语音codec辩论:硬件 还是 软件 ADPCM??

to&nbsp;dragon_hn&nbsp;<br />to&nbsp;所以关注&nbsp;语音压缩编解码的爱好者<br /><br />&nbsp;&nbsp;感谢热心的爱好者的参入!你们的质疑和建议会让我们不至于走弯路,和对项目的理解更加深入!<br /><br />&nbsp;&nbsp;1.这个辩论话题可能永远没有确定的答案,看看市面上的软的硬的方案就知道。<br /><br />&nbsp;&nbsp;2.成本之争:你的建议是哪一款单片机?价格,功能,性能?外设怎么考虑?能接耳机么?你的完整方案的成本有优势么?<br /><br />&nbsp;&nbsp;3.风险因素:adpcm&nbsp;16k,32k,64k到底有多简单抑或多复杂?只有做过的人知道。需要多少硬件资源?能找到多少公开资源?这都是要综合考虑的因素。<br /><br />&nbsp;&nbsp;4.行业现状参考:这个应用类似voip的方案,在这个行业里,有哪些常用方案?看看我们选择的ic规格书就知道,我们的方案也是常见方案之一。<br /><br />&nbsp;&nbsp;5.期待大家给出具体的参考意见:完整解决方案,成功案例。<br />&nbsp;&nbsp;&nbsp;&nbsp;这样我们才能越辩越明,欢迎大家讨论,给出具体知道,谢谢!<br />&nbsp;&nbsp;&nbsp;也好让我们的爱好者明白在器件选型的重要性,和选型原则,技巧和方法!<br /><br /><br />&nbsp;
 楼主| 创意之都 发表于 2009-1-1 19:38 | 显示全部楼层

找个外套给宝贝穿上--寻找对讲机外壳

请大家有这方面资源的帮我们找找对讲机外壳。搞好了,就可以自己用了。在网上找了几张图片,看看
 楼主| 创意之都 发表于 2009-1-1 19:39 | 显示全部楼层

找个外套给宝贝穿上--寻找对讲机外壳2

zhiganglet 发表于 2009-1-1 22:31 | 显示全部楼层

哇酷!over!

  
dragon_hn 发表于 2009-1-2 03:09 | 显示全部楼层

提供ADPCM软压缩解压支持

有疑问可发EMAIL咨询:&nbsp;&nbsp;&nbsp;dragon_hn@sohu.com<br /><br />目前复读机大多采用8k采样率,10bits&nbsp;ADC,而DAC则采用8个IO口+电阻的形式,在语音信号频带范围内音质基本可以保证。<br />--------------------------------------------------------<br />http://www.szkfw.com/AV/ARTICLE/ADPCM.htm<br />--------------------------------------------------------<br /><br /><br /><br />ADPCM压缩算法&nbsp;<br />&nbsp;&nbsp;<br />  ADPCM(Adaptive&nbsp;Differential&nbsp;Pulse&nbsp;Code&nbsp;Modulation),是一种针对&nbsp;16bits(&nbsp;或8bits或者更高)&nbsp;声音波形数据的一种有损压缩算法,它将声音流中每次采样的&nbsp;16bit&nbsp;数据以&nbsp;4bit&nbsp;存储,所以压缩比&nbsp;1:4.&nbsp;而且压缩/解压缩算法非常简单,所以是一种低空间消耗,高质量高效率声音获得的好途径。保存声音的数据文件后缀名为&nbsp;.AUD&nbsp;的大多用ADPCM&nbsp;压缩。<br />  ADPCM&nbsp;主要是针对连续的波形数据的,保存的是波形的变化情况,以达到描述整个波形的目的,由于它的编码和解码的过程却很简洁,列在后面,相信大家能够看懂。<br />  8bits采样的声音人耳是可以勉强接受的,而&nbsp;16bit&nbsp;采样的声音可以算是高音质了。ADPCM&nbsp;算法却可以将每次采样得到的&nbsp;16bit&nbsp;数据压缩到&nbsp;4bit&nbsp;。需要注意的是,如果要压缩/解压缩得是立体声信号,采样时,声音信号是放在一起的,需要将两个声道分别处理。<br /><br />ADPCM&nbsp;压缩过程<br /><br />  首先我们认为声音信号都是从零开始的,那么需要初始化两个变量&nbsp;<br /><br />    int&nbsp;index=0,prev_sample=0;<br /><br />  下面的循环将依次处理声音数据流,注意其中的&nbsp;getnextsample()&nbsp;应该得到一个&nbsp;16bit&nbsp;的采样数据,而&nbsp;outputdata()&nbsp;可以将计算出来的数据保存起来,程序中用到的&nbsp;step_table[],index_adjust[]&nbsp;附在后面:<br /><br />    int&nbsp;index=0,prev_sample:=0;<br /><br />    while&nbsp;(还有数据要处理)<br />    {<br />      cur_sample=getnextsample();        //&nbsp;得到当前的采样数据<br />      delta=cur_sample-prev_sample;       //&nbsp;计算出和上一个的增量<br />      if&nbsp;(delta&lt0)&nbsp;delta=-delta,sb=8;      //&nbsp;取绝对值<br />      else&nbsp;sb&nbsp;=&nbsp;0&nbsp;;               //&nbsp;sb&nbsp;保存的是符号位<br />      code&nbsp;=&nbsp;4*delta&nbsp;/&nbsp;step_table[index];    //&nbsp;根据&nbsp;steptable[]得到一个&nbsp;0-7&nbsp;的值<br />      if&nbsp;(code&gt7)&nbsp;code=7;            //&nbsp;它描述了声音强度的变化量<br />      index&nbsp;+=&nbsp;index_adjust[code]&nbsp;;       //&nbsp;根据声音强度调整下次取steptable&nbsp;的序号<br />      if&nbsp;(index&lt0)&nbsp;index=0;           //&nbsp;便于下次得到更精确的变化量的描述<br />      else&nbsp;if&nbsp;(index&gt88)&nbsp;index=88;<br />      prev_sample=cur_sample;<br />      outputode(code|sb);            //&nbsp;加上符号位保存起来<br />    }<br /><br />  有关ADPCM压缩过程更详细的信息,参见本站&nbsp;ADPCM压缩过程演示程序<br /><br /><br />ADPCM&nbsp;解压缩过程&nbsp;<br /><br />  接压缩实际是压缩的一个逆过程,同样其中的&nbsp;getnextcode()&nbsp;应该得到一个编码,,而&nbsp;outputsample()&nbsp;可以将解码出来的声音信号保存起来。这段代码同样使用了同一个的&nbsp;setp_table[]&nbsp;和&nbsp;index_adjust()&nbsp;附在后面:<br /><br />    int&nbsp;index=0,cur_sample=0;<br /><br />    while&nbsp;(还有数据要处理)&nbsp;<br />    {<br />        code=getnextcode();                       //&nbsp;得到下一个数据<br />        if&nbsp;((code&nbsp;&&nbsp;8)&nbsp;!=&nbsp;0)&nbsp;sb=1&nbsp;else&nbsp;sb=0;<br />        code&=7;                            //&nbsp;将&nbsp;code&nbsp;分离为数据和符号<br />        delta&nbsp;=&nbsp;(step_table[index]*code)/4+step_table[index]/8;     //&nbsp;后面加的一项是为了减少误差<br />        if&nbsp;(sb==1)&nbsp;delta=-delta;<br />        cur_sample+=delta;&nbsp;                       //&nbsp;计算出当前的波形数据<br />        if&nbsp;(cur_sample&gt32767)&nbsp;output_sample(32767);<br />        else&nbsp;if&nbsp;(cur_sample&lt-32768)&nbsp;output_sample(-32768);<br />        else&nbsp;output_sample(cur_sample);<br />        index+=index_adjust[code];<br />        if&nbsp;(index&lt0)&nbsp;index=0;<br />        if&nbsp;(index&gt88)&nbsp;index=88;<br />     }<br /><br />  有关ADPCM解压过程更详细的信息,参见本站&nbsp;ADPCM解压过程演示程序<br /><br />附表&nbsp;<br /><br />     int&nbsp;index_adjust[8]&nbsp;=&nbsp;{-1,-1,-1,-1,2,4,6,8};<br /><br />     int&nbsp;step_table[89]&nbsp;=&nbsp;<br />     {<br />       7,8,9,10,11,12,13,14,16,17,19,21,23,25,28,31,34,37,41,45,<br />       50,55,60,66,73,80,88,97,107,118,130,143,157,173,190,209,230,253,279,307,337,371,<br />       408,449,494,544,598,658,724,796,876,963,1060,1166,1282,1411,1552,1707,1878,2066,<br />       2272,2499,2749,3024,3327,3660,4026,4428,4871,5358,5894,6484,7132,7845,8630,9493,<br />       10442,11487,12635,13899,15289,16818,18500,20350,22385,24623,27086,29794,32767<br />     }<br /><br />特殊ADPCM压缩<br /><br />  根据ADPCM压缩/解压原理,本站提供了&nbsp;3bits&nbsp;ADPCM&nbsp;和&nbsp;4bits&nbsp;ADPCM&nbsp;压缩程序,另外还提供&nbsp;ADPCM系数表设计程序&nbsp;下载。<br /><br />AUD文件结构<br /><br />  关于&nbsp;WestWood&nbsp;的&nbsp;.AUD&nbsp;文件,结构比较简单,这里顺带提一下,有兴趣可以自己写处理AUD文件的程序,其&nbsp;8bit&nbsp;的声音压缩算法尚不知晓,但用的最广泛的&nbsp;16bit&nbsp;声音正是用&nbsp;ADPCM&nbsp;压缩,每个&nbsp;AUD&nbsp;文件都有一个文件头,结构如下:<br /><br />    struct<br />    {<br />      unsigned&nbsp;short&nbsp;int&nbsp;samplespersec&nbsp;;   &nbsp;//&nbsp;频率<br />      long&nbsp;int&nbsp;size;             &nbsp;//&nbsp;除掉文件头的大小<br />      long&nbsp;int&nbsp;outsize;            //&nbsp;输出数据大小&nbsp;(通常是&nbsp;4&nbsp;倍)<br />      unsigned&nbsp;char&nbsp;flags;          &nbsp;//&nbsp;位&nbsp;0&nbsp;描述是否立体声,位&nbsp;1&nbsp;描述是否&nbsp;16&nbsp;bit<br />      unsigned&nbsp;char&nbsp;type&nbsp;;          &nbsp;//&nbsp;1=WW&nbsp;压缩,99=IMA&nbsp;ADPCM<br />    }<br /><br />  AUD文件的声音信号是按块存放的,每块大约&nbsp;512&nbsp;字节,每一块都有一个块头结构:<br /><br />    struct<br />    {<br />      unsigned&nbsp;short&nbsp;int&nbsp;size;&nbsp;//&nbsp;压缩过的数据大小<br />      unsigned&nbsp;short&nbsp;int&nbsp;outsize;&nbsp;//&nbsp;输出数据大小&nbsp;(通常是&nbsp;4&nbsp;倍)<br />      long&nbsp;int&nbsp;id;&nbsp;//&nbsp;永远是&nbsp;0x0000DEAF<br />    }<br /><br />&nbsp;<br /><br /><br />------------------------------------------------------<br /><br /><br />有疑问可发EMAIL咨询:&nbsp;&nbsp;&nbsp;dragon_hn@sohu.com<br />
pheavecn 发表于 2009-1-2 08:25 | 显示全部楼层

stm32不是有个speex,celp语音。比adpcm比特率低些。

  
frank_888 发表于 2009-1-2 13:53 | 显示全部楼层

好东西

顶一个,也定一个吧。zhangbx888@126.com<br />可以做单片机/ARM的硬件或底层软件工作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部