由崎星空 发表于 2023-2-8 22:26:47

【原创】全网首发开源STM32实现SIP电话

本帖最后由 由崎星空 于 2023-2-9 08:42 编辑

本次分享内容:
      开源STM32实现SIP电话,通过开发板连接到本地SIP服务器,然后 其它终端通过连接同一个服务器实现,开发板 到 PC/手机/板子进行语音通信的功能。

详细介绍:

       软件使用:
            FreeRTOS + POSIX + CycloneTCP + PJSIP
       由于使用自己移植 Lwip + PJSIP没有调通过,所以用了CycloneTCP(ESP32是跑通LWIP了的)。
       PJSIP 为著名开源 SIP协议栈,其中包含了网络,音频算法等,感兴趣可以去浏览官方主页:https://www.pjsip.org/
       SIP服务器:由于测试我使用的 miniSIPServer ,如果大家感兴趣可以 在云服务器 安装 Asterisk 或者FreePBX。
       但是一定注意,千万要会添加注册策略,不然会被别人恶意用流量,最后自己交钱。

       硬件使用:
            STM32F429 + WM8978

       优化地方:
            由于使用的是F429本身性能处理3A算法不太行,如果能有个H7,可以跑跑 3A(自动增益控制,降噪,回声消除)。
         (我也想整个H7,最近可惜最近没啥钱了,哈哈)。

       如何自己使用:
             注意我使用的AC6,没有对应版本可以装,也可以将版本。
             1.先修改网络硬件,由于我使用的CycloneTCP,如果CycloneTCP支持的网卡,可以直接添加。
             2.由于原子使用了IO扩展芯片,可以删除掉,避免影响大家修改声卡。
            

             3.修改音频接口,默认是SAI,可以用I2S,最好采样率为16000Hz,深度16bit,双声道(不是双声道需要修改,队列大小看图),Codec默认使用的wm8978。
            

             4. 修改远端或本地SIP 服务器地址,账号名,密码名。
            

视频分享:         
         https://www.bilibili.com/video/BV1V8411u7C4/(这一次视频就比较长了)

软件代码:
         https://gitee.com/seliverwang/work_station.git


以上为本次分享。


--------------


闲聊:   
    距离上一次分享给大家项目软件之后,不知不觉已经过了都快2年了,日子过的真快,又是做了很多项目,每天忙的不可开交,这段时间结婚更忙了,现在忙完了抽空有时间整理一下把,之前做的这个demo分享给大家(其实后面做的还挺多的,还去学了好久的SIP服务器都是后话了)。做嵌入式也搞了6年了,回过头来看,做的也挺多,但是现在越来越不知道后面想干点啥,想创业但是又没有方向(最重要没钱哈哈),既然没有方向就先上班呗,现在就想搞钱了,以后要是大家有啥想法,方向分享分享。













eric2013 发表于 2023-2-9 00:12:44

这个乐鑫有个无线音视频套件,效果还真不错,去年推出的时候一直想买个玩下,没时间弄,
https://www.bilibili.com/video/B ... 163e84f2caee8530c18

由崎星空 发表于 2023-2-9 07:12:04

eric2013 发表于 2023-2-9 00:12
这个乐鑫有个无线音视频套件,效果还真不错,去年推出的时候一直想买个玩下,没时间弄,
https://www.bili ...

      这个协议栈也支持 音视频,奈何MCU性能不行,所以没有跑视频,平时这个都是用Linux搞的,都默认支持带视频,不过应该F7或者H7都能跑带视频吧。:lol

ESP32搞音视频是真不错,这个协议栈我也在ESP32上面跑,然后加上乐鑫ADF里面的消回音库(它的消回音库用的webrtc)效果就挺好。乐鑫没有开源它自己本身的VOIP,有的时候有问题不好排查,就没有用它自己的库。:lol

eric2013 发表于 2023-2-9 09:24:24

由崎星空 发表于 2023-2-9 07:12
这个协议栈也支持 音视频,奈何MCU性能不行,所以没有跑视频,平时这个都是用Linux搞的,都默认 ...
F429跑这个其实完全无压力的,我的网络远程VNC桌面,跑视频播放器
https://www.armbbs.cn/forum.php?mod=viewthread&tid=30543

https://img.alicdn.com/imgextra/i1/299314119/O1CN01MqBEtc1gIYCsZkPCS_!!299314119.gif

由崎星空 发表于 2023-2-9 09:29:58

eric2013 发表于 2023-2-9 09:24
F429跑这个其实完全无压力的,我的网络远程VNC,跑视频播放器
https://www.armbbs.cn/forum.php?mod=vie ...

跑 VNC 和跑这个 视频流还是有点区别,如果跑原始视频流数据量太大了,网络协议栈和MCU处理速度不知道够不够,如果跑压缩的视频流,MCU运行压缩算法又是个问题,我用F429跑 重采样+AEC都很费力,跑视频压缩 h.264这些就更不够了:lol

eric2013 发表于 2023-2-9 09:52:59

由崎星空 发表于 2023-2-9 09:29
跑 VNC 和跑这个 视频流还是有点区别,如果跑原始视频流数据量太大了,网络协议栈和MCU处理速度不知道够 ...
VNC就是压缩的数据流。原始数据,网络可传输不过来,数据量太大了。

同时运行了GUI刷新,jpeg解码,MP3解码,网络通信,VNC压缩数传, SDRAM虚拟桌面等,这些都是同时刷的。

由崎星空 发表于 2023-2-9 10:08:01

eric2013 发表于 2023-2-9 09:52
VNC就是压缩的数据流。原始数据,网络可传输不过来,数据量太大了。

同时运行了GUI刷新,jpeg解码,MP ...

:lol 哥,我说的可能有点不清楚,你分享的VNC我之前也学习过,很多都是用的 MCU硬解和 MCU硬件DMA支持的,除了MP3解码很少软解,但我这个如果跑视频只能纯软件,没法用硬件支持,所以CPU占用率很高。

eric2013 发表于 2023-2-9 10:18:20

由崎星空 发表于 2023-2-9 10:08
哥,我说的可能有点不清楚,你分享的VNC我之前也学习过,很多都是用的 MCU硬解和 MCU硬件DMA支持的 ...
你看错了,F429不支持硬件,所有的全都是软件实现(jpeg解码,MP3解码,VNC压缩数传),只有个GUI刷新是DMA,解码出来后刷新数据到DMA

由崎星空 发表于 2023-2-9 10:36:03

eric2013 发表于 2023-2-9 10:18
你看错了,F429不支持硬件,所有的全都是软件实现(jpeg解码,MP3解码,VNC压缩数传),只有个GUI刷新是D ...

嗯嗯,后面设置分辨率低的参数,再试试h.264,之前跑不动会卡。

honami520 发表于 2023-2-10 14:00:13

看起来做的还是挺不错的嘛,长了点知识了

tcs_stm32 发表于 2023-2-10 17:44:32

结婚,恭喜恭喜啊

由崎星空 发表于 2023-2-11 19:15:03

tcs_stm32 发表于 2023-2-10 17:44
结婚,恭喜恭喜啊

:lol谢谢

由崎星空 发表于 2023-2-11 19:17:10

honami520 发表于 2023-2-10 14:00
看起来做的还是挺不错的嘛,长了点知识了

{:33:} 这个是个demo,如果实际使用场合通常用esp32这种带wifi的会好点,我们后面实际方案也基本上也是用的这种SOC

wsryppaa 发表于 2023-3-8 10:34:02

楼主,方便加个联系方式吗,付费找你定制个东西,感觉你能搞定

lishang4650 发表于 2023-7-25 11:29:11

收藏学习!另外请教楼主提到的音频自动增益控制算法 哪里有,谢谢!

由崎星空 发表于 2023-8-5 14:03:18

lishang4650 发表于 2023-7-25 11:29
收藏学习!另外请教楼主提到的音频自动增益控制算法 哪里有,谢谢!

可以用 webrtc 的 AGC 算法。或者 speex的

大个给力 发表于 2023-8-6 17:51:58

楼主对音频算法理解很通透呀 这个要怎样入门?

由崎星空 发表于 2023-8-10 08:51:00

大个给力 发表于 2023-8-6 17:51
楼主对音频算法理解很通透呀 这个要怎样入门?

我也是菜鸟,多看点DSP相关的书籍,然后动手做实验,然后看别人的代码。特别硬汉 的DSP教程可以跟着做做,然后去 matlab上找算法测试。

ccc228 发表于 2023-10-17 12:02:50

感谢 楼主,学习之!

shukun 发表于 2024-1-3 18:09:57

你好, 方便加QQ沟通吗?

shukun 发表于 2024-1-3 18:12:07

你好,方便QQ或者微信沟通吗? 我现在没权限给你发信息

由崎星空 发表于 2024-1-6 15:54:21

shukun 发表于 2024-1-3 18:12
你好,方便QQ或者微信沟通吗? 我现在没权限给你发信息

你好有什么问题需要沟通吗?可以联系QQ 1220420938

shukun 发表于 2024-1-10 12:36:34

加你QQ,请通过下:loveliness:

KeJian 发表于 2024-3-1 02:31:24

楼主,加你QQ了,请通过一下吧,跟您探讨一下SIP
页: [1]
查看完整版本: 【原创】全网首发开源STM32实现SIP电话