树莓派全双工语音(二)——Mumble的自动化交互
对象与总体进展
尝试对象
根据mumble以及其提供的第三方应用mumble-3rd party application,逐个进行尝试。
1、Mumble client
目前不支持生成命令行界面,需要虚拟化桌面xvfb和GUI自动操作程序的支持。
2、Gumble
可以正常启动并连接服务器,由于兼容性或者配置的原因,没有音频的输入输出。如果这个问题得以解决,实现自动化较为简单。
3、Barnard
gumble的命令行版本,依赖于gumble。所以gumble的问题不解决,barnard也无法正常使用。
4、Pymumble
由于兼容性问题,无法正常使用。
5、talKKonnect
官网只提供了能直接烧录在树莓派上的镜像。GitHub上有源码,正在尝试中。
Mumble client
首先想到了直接对mumble client进行自动化。考虑到mumble client使用图形界面(GUI),实现自动化的难度较大,希望通过修改源码的方式,将mumble改造成使用命令行来控制的版本(Headless),再通过编写脚本执行来实现自动化。
因此与mumble的开发人员进行了简单的沟通,探讨可行性。
mumble-voip-issues#5236
遗憾的是,开发人员说,目前mumble尚不支持这样的功能,并且在短期内也不会进行开发。
他们让我尝试从mumble-voip-issues#3877中得到一些提示。这里提到的主要是QT的offscreen和虚拟化桌面xvfb的使用。
解决方案
1、使用虚拟化桌面xvfb代替显示器;
2、使用GUI自动操作程序dogtail等,完成对mumble的自动化操作。
困难
1、GUI自动操作程序一般是针对Web程序,比如谷歌、火狐等浏览器开发的,可能不适用于mumble client。
2、树莓派使用的系统和图形化界面相比一般的Linux比较特殊,属于深度定制的版本,目前尝试的一种GUI自动操作程序不能在树莓派上使用,有待更多的尝试。
Gumble
gumble安装
首先安装Go语言。sudo apt-get install golang
切换到相对应的目录,发现../go/src/
下缺少很多安装必要的库,根据报错信息一个一个下载。。。漫长并且痛苦的过程,几kb的下载速度,浪费了几个小时,终于找齐了,不报错了。
cd ../go/src/layeh.com/gumble/cmd/mumble-ping
go install
cd ../go/src/layeh.com/gumble/_examples/mumble-audio-player
go install
在../go/bin
下生成了mumble-ping和mumble-audio-player两个可执行文件,其中:
mumble-ping用来显示现有的mumble-server信息;
mumble-audio-player是一个demo,用来测试能否顺利连接mumble-server,并且音频输入输出政策。
gumble调试
1、启动mumble-audio-player,出现问题:
x509: certificate is not valid for any names, but wanted to match localhost
在gumble-issues-4中,发现这是由于gumble需要证书验证,所幸开发者提供了跳过证书验证的选项:--insecure
,问题解决。
2、根据gumble (docs),目前gumble只支持opus来进行音频的发送和接收,并且需要更改mumble-server的配置文件opusthreshold=0
。
3、启动与连接。
cd ../go/bin
./mumble-audio-player
成功启动客户端,并连接了mumble-server服务器。图中的gumble-client就是gumble的客户端。
问题
目前gumble的音频还没有输入和输出,尚不清楚这是由于没设置好,还是gumble不支持树莓派4B音频的原因。有待进一步的测试,目前正在努力。
困难
1、gumble的开发者早在2020年8月就停止了项目的更新,目前项目无人维护和支持,我在2021年8月23日提出了问题gumble-issues-57,但到目前为止无人解答,得到解答的期望也比较低。
2、gumble的开发时间早于树莓派更换新的音频处理模块的时间。
raspberry Pi release note
可以看到,音频模块和蓝牙模块自version-2020-12-02以来,都是由PulseAudio提供支持,原有的alsa及其第三方库被移除。
而gumble中没有明确说明支持PulseAudio,因此在树莓派4B上的兼容性很可能有问题。
Barnard
是由同一人(Tim Cooper)开发的,基于gumble的命令行版本。
安装过程与gumble相同,大多数库依赖于gumble,由于gumble没有音频输入输出,barnard也无法使用。
Pymumble
目前pymumble API这个库可以安装成功,但demo程序audio-only_client.py
无法成功运行,大量报错。
并且出现alsa lib,和bluealsa找不到的问题,而已知的,bluealsa这个第三方库已经被树莓派移除了。
所以猜测是兼容性问题。因此,pymumble也无法正常使用。
仍在尝试中。。。
树莓派全双工语音(二)——Mumble的自动化交互相关推荐
- 树莓派全双工语音(三)——Talkkonnect使用
前言 往期回顾:Mumble使用(二)--Mumble的自动化尝试 目前的主要任务,是实现mumble的自动化交互,尝试的范围是mumble及其生态圈中的第三方客户端. 由于mumble client ...
- shell脚本详解(十二)——Here Document免交互及Expect自动化交互
shell脚本详解(十二)--Here Document免交互及Expect自动化交互 一.Here Document 免交互 1.格式 2.注意事项 3.免交互方式实现对行数的统计,将要统计的内容置 ...
- 今晚8点直播 | 详解微软小冰全双工语音对话技术
微软小冰第六代发布会上正式宣布上线全新的共感模型,同时也开始公测一种融合了文本.全双工语音与实时视觉的新感官.这项新技术可以实时预测人类即将说出的内容,实时生成回应,并控制对话节奏,从而使长程语音交互 ...
- 免费报名 | 微软全双工语音对话以及在智能硬件上的应用
微软小冰第六代发布会上正式宣布上线全新的共感模型,同时也开始公测一种融合了文本.全双工语音与实时视觉的新感官.这项新技术可以实时预测人类即将说出的内容,实时生成回应,并控制对话节奏,从而使长程语音交互 ...
- 微软小冰:全双工语音对话详解
讲师 | 周力 来源 | AI科技大本营在线公开课 微软小冰第六代发布会上正式宣布上线全新的共感模型,同时也开始公测一种融合了文本.全双工语音与实时视觉的新感官.这项新技术可以实时预测人类即将说出的内 ...
- OpenCV开发笔记(二):cvui交互界面
若该文为原创文章,未经允许不得转载 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/100110016 各位读者,知识无穷而人力有穷, ...
- Ubuntu16.04利用expect模拟键盘输入实现自动化交互
在Linux的日常使用中,经常会有自动化交互的需要,如SSH,手动的操作繁琐.效率地下,使用expect工具可以模拟键盘输入,实现自动输入.自动交互. 1,安装 sudo apt install e ...
- pythonsocket自动化教程_python---socket自动化交互
socket 的自动化交互 假设服务端运行程序为: # coding:utf8 # python3 import random import socket import sys # 创建 socket ...
- linux 自动化交互套件 expect 介绍 shell非交互
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信. expect自动交互流程: spawn启动指定进程---expect获取指定关键字--- ...
最新文章
- 泛珠三角计算机作品大赛2018,2018年泛珠三角大学生计算机作品赛广西赛区选拔赛圆满结束...
- 使用bootstrap-table等自动使用ajax地址载入数据的插件的数据设计建议
- Leaflet中使用Leaflet-MiniMap插件实现小地图效果
- 伪原创工具安全第一嘛~~
- OpenCV3学习(12.2) 目标跟踪之运动模板法segmentMotion实现(Mat版本)
- 在列表中根据条件来筛选数据
- C#中(int),int.Parse,int.TryParse,Convert.ToInt32四则之间的用法
- 3G手机Android应用开发视频教程_黎活明老师的视频(第三天课程)总共有八天课程...
- java过滤集合数量,java – 使用lambdaj过滤集合
- erp服务器维护数据备份,erp服务器备份
- nova创建虚拟机源码分析系列之六 api入口create方法
- PN512使用的一些小技巧
- vue3.0中使用百度离线地图
- PowerPoint放映时的动画怎么取消?
- BGP 自动路由聚合
- 龙卷风收音机android安卓版,龙卷风收音机安卓版
- 英语翻译作业(十二)
- 最新款iPad,真香!!
- nagios监控数据库错误
- RRD_rrdtool的介绍和使用