- 博客(378)
- 资源 (19)
- 收藏
- 关注
原创 丢失的“Edit with IDLE“右键菜单项
昨天晚上,上高一的儿子安装python之后,发现右击.py文件没有"Edit with IDLE"菜单项,和老师课堂的环境有差异,让我帮他找回来。通过上述方法,可高效为Python文件添加右键编辑选项,提升开发体验。为实际Python版本号后,以管理员身份运行脚本)若频繁操作注册表,可创建批处理文件(
2025-04-01 08:47:20
284
原创 SSML(Speech Synthesis Markup Language)简介
SSML(Speech Synthesis Markup Language,即语音合成标记语言)是一种基于 XML 的标记语言,旨在为文本到语音(TTS,Text-to-Speech)转换提供丰富的控制能力。它允许开发者定义语音合成的各种参数,如语速、音量、音调、停顿、发音等,从而提升语音合成的自然度和可控性。SSML 由 W3C(万维网联盟)定义,是语音合成技术的重要标准,广泛用于智能语音助手、IVR(交互式语音应答)系统、播报系统等应用。
2025-03-26 17:12:01
296
原创 GDB调试时打印通道变量
在 GDB 中打印链表时,可以通过逐步解开指针并打印每个节点的内容来查看链表的结构。在调试freeswitch时,有时候需要找到某个通道变量的值。怎么办呢?,这通常是一个链表结构,所以你需要逐层访问每个指针并查看它的内容。假设你已经有了channel和variables。
2025-03-18 03:00:00
208
原创 freeswitch通过uuid定位session并发送event
在 FreeSWITCH 的 C 代码中,可以通过。将其发送到指定的会话(session)。
2025-03-03 03:30:00
226
原创 VirtualBox 中使用 桥接网卡 并设置 MAC 地址
这样,你的虚拟机就可以通过桥接网卡直接连接到物理网络,并且拥有你设定的 MAC 地址了。如果 MAC 地址未生效,可以尝试。在 VirtualBox 中使用。
2025-02-18 15:56:57
615
原创 ubuntu server环境下使用mitmproxy代理
近日为了调试AWS连接的一个问题,需要查看HTTPS报文的内容,通过抓包的方式也可以。这里介绍通过mitmproxy的方式。因为是server环境,没有桌面,因此配置的过程是基于shell终端完成的。
2025-02-07 14:08:12
313
原创 使用 C/C++ 调用 libcurl 调试消息
libcurl是一个功能强大的库,用于在 C/C++ 中实现 HTTP 请求(支持 GET、POST、PUT 等方法)。为了调试请求和响应信息,libcurl使用打印所有传输信息。使用捕获并处理调试日志。使用和输出完整的请求。使用将服务器响应保存到变量中。通过启用或自定义,可以轻松查看libcurl的请求消息(包括请求头和请求体)。结合响应回调函数,能完整调试 HTTP 请求和服务器返回的内容。这些工具对于开发和调试网络程序非常有用!
2025-01-28 08:00:00
490
原创 AWScurl笔记
AWScurl是一款专为与AWS服务交互设计的命令行工具,它模拟了curl的功能并添加了AWS签名版本4的支持。这一特性使得用户能够安全有效地执行带有AWS签名的请求,极大地提升了与AWS服务交互时的安全性和有效性。AWScurl是一款专为与AWS服务交互设计的命令行工具,它模拟了curl的功能并添加了AWS签名版本4的支持。这一特性使得用户能够安全有效地执行带有AWS签名的请求,极大地提升了与AWS服务交互时的安全性和有效性。
2025-01-23 15:05:36
1351
原创 SIP VIA报头语法结构
SIP(Session Initiation Protocol,会话初始协议)的VIA报头在SIP消息结构中扮演着重要角色,它定义了SIP事务的下层(传输层)传输协议,并标识响应消息将要被发送的位置。
2025-01-08 15:26:08
419
原创 Windows下播放文件作为麦克风声源的一种方式
这样,就需要想办法把mp3文件转换为测试client的输入声音。物理方式上,可以用一根音频线,把电脑的audio out接到audio in,以前上班地方就在百脑汇附近,很容易买到这样的转接线。现在介绍一种软件实现的方式。近期测试一种外语的ASR识别成功率,样本素材是懂这门语言的同事录制的mp3文件。测试client端原本是从麦克风拾音生成媒体流的。这时,我们需要两款软件,一是音频播放软件 可以下载ocenaudio。一是虚拟声卡软件 VB-cable。
2024-12-28 18:00:00
365
原创 Python 的 logging 日志输出格式
类允许你指定一个格式字符串,该字符串决定了日志消息的最终布局。格式字符串可以包含各种占位符(也称为格式字段),这些占位符在格式化日志消息时会被相应的值所替换。你可以通过组合这些格式字段来创建自定义的日志格式。实例,将其应用到你的日志处理器上,然后将处理器添加到日志记录器上。要在你的 Python 脚本中使用这个格式,你需要创建一个。当你运行这个脚本时,你应该会在控制台上看到格式化的日志输出。在 Python 的。模块中,日志格式是通过。
2024-12-18 18:00:00
598
1
原创 C++条件变量:实现线程间同步的利器
C++中的条件变量是一种强大的同步工具,它允许线程在特定条件满足之前被阻塞。通过与互斥锁的结合使用,条件变量可以确保对共享数据的访问是安全的,并有效避免竞争条件。然而,在使用条件变量时,需要特别注意虚假唤醒、互斥锁的正确使用以及死锁等问题。通过合理使用条件变量,可以大大提高多线程程序的健壮性和性能。
2024-12-09 01:00:00
418
原创 C++互斥锁:确保线程安全的利器
互斥锁(Mutex,全称Mutual Exclusion)是一种用于保护共享资源,防止多个线程同时访问该资源的同步机制。当一个线程获取到互斥锁后,其他尝试获取该锁的线程将被阻塞,直到锁被释放为止。这样,就可以确保在同一时间内只有一个线程能够访问共享资源,从而避免数据竞争和不一致的问题。
2024-12-02 12:30:00
678
原创 C++分离线程
join:等待线程完成。detach:将线程与其创建的线程分离,使其独立运行。joinable:检查线程是否可以被join或detach。理解这些方法是编写正确和健壮的多线程C++程序的关键。
2024-11-28 01:00:00
348
原创 C++ atomic 使用
是 C++11 标准库中引入的一个模板类,用于实现无锁编程中的原子操作。原子变量可以保证在多线程环境下对变量的读写操作是原子的,即不会被其他线程的操作中断,从而避免数据竞争和未定义行为。以下是。
2024-11-11 01:00:00
662
原创 Linux /proc/[pid]/task/[tid]/sched文件解析
在Linux系统中,/proc文件系统是一个虚拟文件系统,提供了对内核数据结构的访问接口。文件是其中一个特定的文件,它包含了与特定线程(Thread ID,TID)相关的调度信息。
2024-11-05 16:47:35
769
原创 SIP Call-Info报头的语法结构
另外,Call-Info报头的使用可能带来安全风险,如果被呼叫方获取恶意呼叫方提供的URI,可能面临显示不适当或冒犯性内容、危险或非法内容等的风险。因此,建议用户代理(UA)只有在能够验证发起报头字段的元素的真实性并信任该元素的情况下,才呈现Call-Info报头字段中的信息。
2024-10-29 17:42:09
381
原创 Xshell调用powershell连接Teleport
公司最近切换telport管理SSH的连接访问。配置完成后,通过powershell可能远程访问。但是powershell缺少session管理功能,每次连接都记不住远程IP,很是头疼。利用Xshell的管理能力是否可行?首先,新建session, 填入取好的名字,协议选择local。然后勾选Execute 前的选择框,点击add添加发送的命令。然后,在需要连接时打开session就可以了。第二步:选择login Scripts。
2024-09-29 17:05:06
359
原创 选择高亮选区
VIM可视模式的3个子模式用于处理不同类型的文本。本文介绍节看到如何激活每种子模式,以及如何在它们之间切换。Vim有3种可视模式。在面向字符的可视模式中,我们能够选择任意的字符范围,不论它是单个字符,还是位于一行内,或是跨若干行的指定字符范围,都没问题。该模式适用于操作单词或短语。如果我们想对整行进行操作,可以改用面向行的可视模式。而面向列块的可视模式则允许对文档中的列块进行操作。
2024-09-20 16:47:49
509
原创 VIM复合命令
VIM提供了很多 复合命令,可以把两个动作合并为一次按键。极大提高了编辑效率。除了表中说明的功能之外,这些命令还有一个共同特点:它们都会从普通模式切。结合重复命令.将产生奇特的反应。
2024-08-09 16:27:08
514
1
原创 vim列编辑模式
在编辑文本时,经常会有这样的需求,对特定列进行进行批量编辑。比如批量注释一段代码,或者删除待定字符(如一列空格)。幸运的是VIM支持列编辑模式。
2024-08-02 16:01:00
826
原创 opensips ACC模块扩展字段
指定扩展信息的实现是通过实现的,它通过指定标签名进行赋值。这些信息的标签名,通过acc_extra伪变量定义。没有没有指定tag名,那么其值就会被视为log_value。其语法定义格式如下:' tag)*其中backend指定扩展内容输出到何处,可选值有log, db, aaa, evi,其后跟着一个冒号,后面是tag列表。如果有个箭头,箭头前表示脚本中伪变量名,箭头后表示输出终端的字段名。扩展字段的内容,在整个呼叫过程中始终可见。
2024-06-14 15:03:59
378
原创 opensips 3.5的DB部署
opensips 3.X的DB部署方式较之前版本有很大的不同。本文以opensips 3.5 为例,说明部署的过程。当OpenSIPS安装完成后,需要进一步做什么?最大的可能就是部署配套的DB。因为很多功能离不开它,比如用户鉴权、注册信息持久化、dialog信息维护,等等。你可以通过opensips-cli来部署db。在部署之前,你需要先安装它,如何安装请参考。本人。
2024-06-03 08:00:00
1054
1
原创 利用audacity和ffmpeg制作测试音频文件
大部分地方使用的都是小端字节序,如果需要的是小端,那么可以直接用audacity,而不需要再用ffmpeg转换。具体导出方法如下所示,导出格式选择:其它无压缩音频文件,采样率16000,Header选择RAW,Encoding选择Signed 16-bit PCM。最近要用SIPP测试一个场景,需要发送双声道/16K采样率/16bit量化的PCM流,但是下载的素材往往不能满足参数要求。-acodec pcm_s16be: 输出pcm格式,采用signed 16格式,大端字节序(小端的话使用le)
2024-05-27 17:48:15
1048
原创 从WEBM文件中提取音频
要从WEBM文件中提取音频,可以使用ffmpeg这个强大的多媒体处理工具。-q:a 4:设置音频压缩质量为中等(范围从0(无损)到51(最低质量),高质量通常需要更高的值)。-c:a libmp3lame:指定输出音频编码器为MP3(使用libmp3lame)。-i input.webm:指定输入文件。output.mp3:输出文件的名称。
2024-05-17 14:36:08
752
原创 dstat 与系统 I/O
知道系统运行了哪些服务也许并不能告诉你是谁拖慢了系统。top 命令可以报告CPU占用情况以及I/O等待时间,但这可能也不足以找出导致系统过载的任务。跟踪I/O以及上下文切换有助于揪出问题的源头。dstat 实用工具可以为你指出系统潜在的瓶颈。
2024-04-29 10:57:58
368
FreeSWITCH clustering with OpenSIPS
2020-04-22
FreeSWITCH Cookbook
2013-07-01
Asterisk: The Definitive Guide, 3rd Edition
2013-01-25
FreeSWITCH 1.0.6
2012-04-13
VoiceXML基础教程
2011-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人