MRCPv2 协议学习

简介 MRCPv2 是Media Resource Control Protocol Version 2的缩写 MRCP 允许客户端去操作服务端的媒体资源处理 MRCP 的常见功能如下 文本转语音 语音识别 说话人识别 语音认证 等等 MRCP 并不是一个独立的协议,而是依赖于其他的协议,如 SIP/SDP MRCPv2 RFC 发表于 2012 年 MRCPv2 主要由思科,Nuance,Speechworks 开发 MRCPv2 是基于 MRCPv1 开发的 MRCPv2 不兼容 MRCPv1 MRCPv2 在传输层使用 TCP 或者 TLS 定义 媒体资源: An entity on the speech processing server that can be controlled through MRCPv2. MRCP 服务器: Aggregate of one or more “Media Resource” entities on a server, exposed through MRCPv2. Often, ‘server’ in this document refers to an MRCP server. MRCP 客户端: An entity controlling one or more Media Resources through MRCPv2 (“Client” for short). DTMF: Dual-Tone Multi-Frequency; a method of transmitting key presses in-band, either as actual tones (Q.23 [Q.23]) or as named tone events (RFC 4733 [RFC4733]). Endpointing: The process of automatically detecting the beginning and end of speech in an audio stream. This is critical both for speech recognition and for automated recording as one would find in voice mail systems. Hotword Mode: A mode of speech recognition where a stream of utterances is evaluated for match against a small set of command words. This is generally employed either to trigger some action or to control the subsequent grammar to be used for further recognition. 架构 客户端使用SIP/SDP建立MRCP控制通道 SIP使用SDP的offer/answer模型来描述MRCP通道的参数 服务端在answer SDP中提供唯一的通道ID和服务端TCP端口号 客户端可以开启一个新的TCP链接,多个MRCP通道也可以共享一个TCP链接 ...

2022-12-01 10:08:38 · 3 min · Eddie Wang

清除所有GIT历史记录

有些时候,git 仓库累积了太多无用的历史更改,导致 clone 文件过大。如果确定历史更改没有意义,可以采用下述方法清空历史, 先 clone 项目到本地目录 (以名为 mylearning 的仓库为例) git clone git@gitee.com:badboycoming/mylearning.git 进入 mylearning 仓库,拉一个分支,比如名为 latest_branch git checkout --orphan latest_branch 添加所有文件到上述分支 (Optional) git add -A 提交一次 git commit -am "Initial commit." 删除 master 分支 git branch -D master 更改当前分支为 master 分支 git branch -m master 将本地所有更改 push 到远程仓库 git push -f origin master 关联本地 master 到远程 master git branch --set-upstream-to=origin/master

2022-12-01 09:49:29 · 1 min · Eddie Wang

GIT 重新设置远程url

git remote set-url origin repo-url

2022-12-01 09:46:13 · 1 min · Eddie Wang

Deepin安装man命令

想查资料,发现 deepin 居然没有 man 这个命令。 安装 sudo apt-get install man-db 使用介绍

2022-11-03 11:55:51 · 1 min · Eddie Wang

Linux 日志系统简述

1. 序言 日志文件包含系统的运行信息,包括内核、服务、应用程序等的日志。日志在分析系统故障、排查应用问题等方面,有着至关重要的作用。 2. 哪些进程负责管理日志? 默认情况下,系统上有两个守护进程服务管理日志。journald和rsyslogd。 journald是systemd的一个组件,journald的负责收集日志,日志可以来自 Syslog日志 内核日志 初始化内存日志 启动日志 所有服务写到标准输出和标准错误的日志 journal收集并整理收到的日志,使其易于被使用。 有以下几点需要注意 默认情况下,journal的日志是不会持久化的。 journal的日志是二进制的格式,并不能使用文本查看工具,例如cat, 或者vim去分析。journal的日志需要用journalctl命令去读取。 journald会把日志写到一个socket中,rsyslog可以通过这个socket来获取日志,然后去写文件。 3. 日志文件文件位置 日志文件位置 /var/log/ 目录 4. 日志配置文件位置 /etc/rsyslog.conf rsyslogd配置文件 /etc/logrotate.conf 日志回滚的相关配置 /etc/systemd/journald.conf journald的配置文件 5. rsyslog.conf 5.1. 模块加载 注意 imjournal就是用来负责访问journal中的日志 imuxsock 提供本地日志输入支持,例如使用logger命令输入日志 $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imjournal # provides access to the systemd journal 5.2. 过滤 5.2.1. 优先级过滤 **模式:FACILITY.**PRIORITY 设备(FACILITY): kern (0), user (1), mail (2), daemon (3), auth (4), syslog (5), lpr (6), news (7), cron (8), authpriv (9), ftp (10), and local0 through local7 (16 - 23). 日志等级:debug (7), info (6), notice (5), warning (4), err (3), crit (2), alert (1), and emerg (0). 正则 = 指定某个级别 ! 排除某个级别 匹配所有级别 Example: ...

2022-10-26 08:44:12 · 3 min · Eddie Wang

Ubuntu 使用过程中遇到的问题以及解决方案

1. ubuntu wine 微信中文乱码 修改文件 /opt/deepinwine/tools/run.sh /opt/deepinwine/tools/run_v2.sh 将WINE_CMD那行中加入LC_ALL=zh_CN.UTF-8 WINE_CMD="LC_ALL=zh_CN.UTF-8 deepin-wine" 参考 https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu 2. ubuntu 20.04 wine 微信 qq 截图时黑屏 之前截图都是好的的,不知道为什么,今天截图时,点击了微信的截图按钮后,屏幕除了状态栏,都变成黑色的了。 各种搜索引擎搜了一遍,没有发现解决方案。 最后决定思考最近对系统做了什么变更,最近我好像给系统安装了新的主题,然后在登录时,选择了新的主题,而没有选择默认的ubuntu主题。 在登录界面的右下角,有个按钮,点击之后,可以选择主题。 最近我都是选择其他的主题,没有选择默认的ubuntu主题,然后我就注销之后,重新在登录时选择默认的ubuntu主题后,再次打开微信截图,功能恢复正常。 所以说,既然选择ubuntu了,就没必要搞些花里胡哨的东西。ubuntu默认的主题挺好看的,而且支持自带主题的设置,就没必要再折腾了。 3. [open] ubuntu 20.04 锁屏后 解锁屏幕非常慢 super + l可以用来锁屏,锁屏之后屏幕变成黑屏。 黑屏之后,如果需要唤醒屏幕,可以随便在键盘上按键,去唤醒屏幕。但是这个唤醒的过程感觉很慢,基本上要随便按键接近十几秒,屏幕才能被点亮,网上搜了下,但是没有找到原因。 但是有个解决办法,就是在黑屏状态下,不要随便输入,而要输入正确的密码,然后按回车键, 这样会快很多。 也就是说,系统运行正常,可能是显示器的问题。 4. ubuntu 20.04 xorg 高cpu 桌面卡死 sudo systemctl restart gdm 5. ubuntu 状态栏显示网速 sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor sudo apt-get install indicator-sysmonitor 在任务启动中选择System Monitor 在配置中可以选择开机启动 在高级中可以设置显示哪些列, 我只关系网速,所以只写了{net} 6. 在命令行查看图片 实际上终端并不能显示图片,而是调用了外部的程序取显示图片。 ...

2022-10-25 12:56:41 · 2 min · Eddie Wang

树莓派初始化配置

我已经装过几次树莓派的系统了,记录一些使用心得。 1. 选择哪个版本 最好用无桌面版,无桌面版更加稳定。我之前用过几次桌面版,桌面版存在以下问题。 使用偶尔感觉会卡 经常使用一天之后,第二天要重启系统。 2. 关于初始设置 默认的用户是 pi,默认的密码是raspberry 登录成功之后,sudo passwd pi 来修改pi用户的密码 登录之后,sudo passwd root 来设置root的用户密码 3. 开启ssh 远程登录服务 raspi-config 4. root用户ssh登录 默认树莓派是禁止使用root远程登录的,想要开启的话,需要编辑/etc/ssh/sshd_config文件,增加一行PermitRootLogin yes, 然后重启ssh服务 vi /etc/ssh/sshd_config PermitRootLogin yes sudo systemctl restart ssh // chong 5. 关于联网 联网有两个方案 用网线连接,简单方便,但是有条线子,总会把桌面搞得很乱 使用wifi连接,简单方便 使用wifi连接,一种方式是编辑配置文件,这个比较麻烦。我建议使用树莓派提供的raspi-config命令来设置wifi。 在命令行中输入:raspi-config, 可以看到如下界面 按下箭头,选择NetWork Options,按回车确认 进入网络设置后,按下箭头,选择N2 Wi-fi 然后就很简单了,输入wifi名称和wifi密码,最好你的wifi名称是英文的,出现中文会很尴尬的。 6. 如何找到树莓派的IP地址 某些情况下,树莓派在断电重启之后会获得新的IP地址。在没有显示器的情况下,如果找到树莓派的IP呢? 树莓派的MAC地址是:b8:27:eb:6c 开头 所以你只需要输入: arp -a 就会打印网络中的主机以及MAC地址,找以b8:e7:eb:6c开头的,很可能就是树莓派。 7. 设置清华镜像源 https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/

2022-10-25 12:12:05 · 1 min · Eddie Wang

Wireshark抓包教程

1. HTTP抓包例子 案例:本地向 http://192.168.40.134:31204/some-api,如何过滤? http and ip.addr == 192.168.40.134 and tcp.port == 31204 语句分析: http 表示我只需要http的包 ip.addr 表示只要源ip或者目标ip地址中包含192.168.40.134 tcp.port 表示只要源端口或者目标端口中包含31204 2. 为什么我写的表达式总是不对呢?😂 很多时候,你写的表达式背景色变成红色,说明表达式错误了,例如下图:http and ip.port == 31204 写出ip.port这个语句,往往是对传输协议理解不清晰。😅 ip是网络层的协议,port是传输层tcp或者udp中使用的。例如你写tcp.port == 80,udp.port ==3000这样是没问题的。但是port不能跟在ip的后面,如果你不清楚怎么写,你可以选择wireshark的智能提示。 智能提示会提示所有可用的表达式。 3. 常用过滤表达式 一般我们的过滤都是基于协议,ip地址或者端口号进行过滤的, 3.1. 基于协议的过滤 直接输入协议名进行过滤 3.2. 基于IP地址的过滤 3.3. 基于端口的过滤 基于端口的过滤一般就两种 tcp.port == xxx udp.port == xxx 3.4. 基于host的过滤 4. 比较运算符支持 == 等于 != 不等于 > 大于 < 小于 >= 大于等于 <= 小于等于 ip.addr == 192.168.2.4 5. 逻辑运算符 and 条件与 or 条件或 xor 仅能有一个条件为真 not 所有条件都不能为真 ip.addr == 192.168.2.4 and tcp.port == 2145 and !tcp.port == 3389 6. 只关心某些特殊的tcp包 tcp.flags.fin==1 只过滤关闭连接的包 tcp.flags.syn==1 只过滤建立连接的包 tcp.flags.reset==1 只过滤出tcp连接重置的包 7. 统计模块 7.1. 查看有哪些IP Statistics -> endpoints ...

2022-10-25 09:12:00 · 1 min · Eddie Wang

Tcpdump抓包教程

查看帮助文档 从帮助文档可以看出,包过滤的表达式一定要放在最后一个参数 tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ] [ -c count ] [ --count ] [ -C file_size ] [ -E spi@ipaddr algo:secret,... ] [ -F file ] [ -G rotate_seconds ] [ -i interface ] [ --immediate-mode ] [ -j tstamp_type ] [ -m module ] [ -M secret ] [ --number ] [ --print ] [ -Q in|out|inout ] [ -r file ] [ -s snaplen ] [ -T type ] [ --version ] [ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ] [ --time-stamp-precision=tstamp_precision ] [ --micro ] [ --nano ] [ expression ] 列出所有网卡 tcpdump -D 1.enp89s0 [Up, Running, Connected] 2.docker0 [Up, Running, Connected] 3.vetha051ecc [Up, Running, Connected] 4.vethe67e03a [Up, Running, Connected] 5.vethc58c174 [Up, Running, Connected] 指定网卡 -i tcpdump -i eth0 所有网卡 tcpdump -i any 不要域名解析 tcpdump -n -i any 指定主机 tcpdoump host 192.168.0.1 指定源IP或者目标IP # 根据源IP过滤 tcpdump src 192.168.3.2 # 根据目标IP过滤 tcpdump dst 192.168.3.2 指定协议过滤 tcpdump tcp 指定端口 # 根据某个端口过滤 tcpdomp port 33 # 根据源端口或者目标端口过滤 tcpdump dst port 33 tcpdump src port 33 # 根据端口范围过滤 tcpdump portrange 30-90 根据IP和地址 tcpdump -i ens33 tcp and host 192.168.40.30 抓包结果写文件 tcpdump -i ens33 tcp and host 192.168.40.30 -w log.pcap 每隔30秒写一个文件 -G 30 表示每隔30秒写一个文件 文件名中的%实际上是时间格式 tcpdump -i ens33 -G 30 tcp and host 192.168.40.30 -w %Y_%m%d_%H%M_%S.log.pcap 每达到30MB产生一个文件 -C 30 每达到30MB产生一个文件 tcpdump -i ens33 -C 30 tcp and host 192.168.40.30 -w log.pcap 指定抓包的个数 在流量很大的网络上抓包,如果写文件的话,很可能将磁盘写满。所以最好指定一个最大的抓包个数,在达到包的个数后,自动退出。 ...

2022-10-25 09:09:05 · 2 min · Eddie Wang

http抓包工具httpry使用

git clone https://gitee.com/nuannuande/httpry.git cd httpry yum install libpcap-devel -y make make install cp -f httpry /usr/sbin/ httpry -i eth0

2022-10-25 09:07:04 · 1 min · Eddie Wang