论坛元老
 
- 积分
- 5206
- 金钱
- 5206
- 注册时间
- 2016-7-21
- 在线时间
- 1149 小时
|
本帖最后由 天道酬勤8988 于 2021-12-9 18:02 编辑
视频演示:
https://v.youku.com/v_show/id_XMzYyMjA0NTIwMA==.html?spm=a2hcb.profile.app.5~5!2~5~5!3~5!2~5~5!18~A
主要核心技术SPEEX,主控采用STM32F103,音频输入使用自带的ADC,音频播放使用自带的DAC或者PWM,无线传输使用NRF2401或者SI4432,显示使用0.96或者1.3寸OLED,系统UCOSIII,图形界面Stemwin。
开头说了主要的核心技术是SPEEX音频压缩,在论坛搜索关于SPEEX的资料很少,近期花时间研究了SPEEX,在这里抛砖引玉希望能给坛友们带来帮助,顺便做个项目给自己来个考试。关于SPEEX百度百科的介绍:
speex
Speex是一套主要针对语音的开源免费,无专利保护的音频压缩格式。
介绍[url=]编辑[/url]
Speex工程着力于通过提供一个可以替代高性能语音编解码来降低语音应用输入门槛 。另外,相对于其它编解码器,Speex也很适合网络应用,在网络应用上有着自己独特的优势。同时,Speex还是GNU工程的一部分,在改版的BSD协议中得到了很好的支持。
技术[url=]编辑[/url]
Speex是基于CELP并且专门为码率在2-44kbps的语音压缩而设计的。它的特点有:
■窄带(8kHz),宽带(16kHz)和超宽带(32kHz)压缩于同一位流。
■强化立体编码
■数据包丢失隐蔽
■可变比特率(VBR)
■语音捕捉(VAD)
■非连续传输(DTX)
■定点运算
■感官回声消除(AEC)
■噪音屏蔽
制作思路:
之前使用STM32自带的ADC做过录音,保存的是PCM数据,数据量特别大,8K采样率16bit 1S=8000*16=128000bit=128000bit/8=16000byte=16000byte/1024=15.625K,使用STM32内部的FLASH(分配后200K)只能录制200K/15.625K=12.8S;在这么大的数据量下做对讲机对无线的空中速率要求特别高,在我的资料库里还没有可以胜任的LORA芯片,后来在网上看到了音频压缩SPEEX,最大压缩率16:1;这个比值真的很大,用上面的参数再做个计算:无压缩1S 15.625K,使用SPEEX压缩15.625K/16=0.9765625K=1000byte,200K/1000byte=200S,相比12.8S这个结果是很惊人的。 使用了SPEEX压缩就解决了无线传输的瓶颈,当然会有人担心压缩后声音的质量怎么样,下面的帖子我会放一个测试视频。
关于GSM-对讲机:你可能还不知道"GSM-对讲机"是什么,这是当然了。它是我自己命名的一个制作,此贴主要是它的制作过程,接下来如果你关注此贴你就会对他的功能和外貌有全面的了解。
GSM-对讲机功能:
基本功能:
1、A按下按钮说话,时时发送到B。
2、FM收音机。
扩展功能后期添加:
1、A录制一段语音发送到B设备里,B收到新的语音会有提醒,然后选择播放语音,语音可以保存数条在内存卡里,需要播放时可以选择条目播放。
2、A选择内存卡WAV音频发送到B时时播放。
3、AB之间内存卡文件互换。
电路图V1.0:
实物图:
|
|