3分钟在树莓派上实现一个点到点的实时语音传输

太长不看跳转: 点击

相关linux命令介绍

该方式只能作为测试两点之间通信可达性的工具,该过程缺少流媒体传输缓冲等提高用户体验度的模块。所用到的工具模块也十分简单。

linux命令nc

nc指令全称netcat,该指令历史悠久,被称为网络工具箱里的瑞士军刀。在树莓派上可以直接使用包管理工具对其进行安装:

apt-get install nc
# 或者
apt-get install netcat

该命令可以快速建立起两个可连通节点之间的tcp或者udp连接。举例如下:
3分钟在树莓派上实现一个点到点的实时语音传输_第1张图片
左边为监听端,监听在2000端口上的消息,并输出至屏幕。右方为发送方,该部分将标准输入发送到目的端口ip的对应端口上
nc指令还可以使用-z参数实现目的端口可用性扫描,具体内容可以使用-h参数查看。

linux音频命令arecord,aplay

这两个命令是linux系统下的基础音频操作函数,可以对alsa架构下的声卡信息进行查询,并且可以实现路由,播放等功能。
在设备安装好后,使用该命令查询后可以看到输出如下:
在这里插入图片描述
card x:
subdevice #x:
这之中的两个数字x会决定被命令调用时的相关设备参数。
这两个命令也可以使用ffmpeg的相关指令代替

管道

管道是linux下进程间通信的常用方式,在shell中可以用 | 方便的使用,常见的使用方式如下图所示:
3分钟在树莓派上实现一个点到点的实时语音传输_第2张图片
可以搭配grep命令实现对输出信息的筛选

相关硬件准备

这个过程需要准备两块树莓派以及麦克风,扬声器。
麦克风阵列如下
3分钟在树莓派上实现一个点到点的实时语音传输_第3张图片
该麦克风阵列配备了音频输出接口,可以直接连接扬声器进行音频输出。同时该麦克风使用前需要查询该项目的github官网进行
树莓派选用3B,型号如下。

扬声器选用淘宝上20块钱的麦克风。
3分钟在树莓派上实现一个点到点的实时语音传输_第4张图片

实现过程


发送方

arecord -D plughw:1,0 -t wav -f cd -r 8000  | nc 192.168.1.127 11451

接收方

nc -lp 11451| aplay

该过程只能作为网络条件良好时简单的测试脚本。

你可能感兴趣的:(网络,linux,运维,实时音视频)