自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

精益求精

因为专业,所以卓越!

  • 博客(498)
  • 资源 (19)
  • 收藏
  • 关注

转载 Spark RDD 详细介绍

  RDD(Resilent Distributed Datasets)俗称弹性分布式数据集,是Spark 底层的分布式存储的数据结构,可以说是 Spark 的核心, Spark API 的所有操作都是基于 RDD 的. 有容错机制并可以被并行操作的元素集合,具有只读、分区、容错、高效、无需物化、可以缓存、RDD依赖等特征。RDD只是数据集的抽象,分区内部并不会存储具体的数据。       R...

2018-09-13 17:47:58 1121

原创 Java多线程--局部变量(threadlocal)

ThreadLocal是什么  ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是thread local variable(线程局部变量)。线程局部变量(ThreadLocal)的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量。  ThreadLocal的接口:  Ob

2010-11-26 10:08:00 1233

原创 WAV文件改变采样率(java版)

采样频率(Sampling Frequency),也称为采样速度或采样率,是指每秒钟从连续信号中提取并组成离散信号的采样数量,用赫兹(Hz)来表示。简单来说,采样频率描述了计算机每秒钟采集多少个声音样本。这一参数对声音文件的音质和音调有直接影响,并且是衡量声卡和声音文件质量的重要标准。采样频率的倒数叫做采样周期或采样时间,表示的是两个连续采样之间的时间间隔。例如,如果采样频率为 44.1 kHz(即每秒钟采集 44,100 个样本),那么采样周期就是约 22.7 微秒。

2024-09-16 13:48:55 776

原创 WAV裸流文件增加Header(java版)

在Windows环境下,大部分多媒体文件都是按照资源互换文件格式(Resources lnterchange File Format)存放信息,简称RIFF格式。构成RIFF文件的基本单位称之为块(chunk),每个RIFF文档是由若干个块构成。每个块(chunk)由块标识、块长度及数据等三部分所组成。

2024-09-16 10:44:15 877

原创 Wav的Header读取(Java版)

计算机广泛配置的16位声卡,使用的采样频率通常包括11025Hz、22050Hz、44100Hz和48000Hz四种,其中,采用11025Hz采样的声音效果相当于电话声音的效果;声道数:有单声道和立体声之分,单声道的声音只能使用一个喇叭发声(有的声卡也将单声道信息处理成两个喇叭同时输出),立体声的WAV可以使两个喇叭都发声(一般左右声道有分工),这样更能感受到音频信息的空间效果。WAV文件采用的是RIFF格式结构,至少是由3个块构成,分别是RIFFChunk、fmt Chunk和Data Chunk。

2024-09-16 09:01:40 1091

原创 Java websocket介绍和通讯

WebSocket 是一种非常重要的网络协议,特别适用于需要实时更新和双向通信的应用场景。全双工通信:WebSocket 允许客户端和服务器在单个连接上同时进行双向通信。这意味着一旦连接建立,服务器可以主动推送数据到客户端,而客户端也可以向服务器发送数据。持久连接:WebSocket 连接在建立之后会保持打开状态,直到被显式关闭。这与传统的 HTTP 请求-响应模型不同,HTTP 每次通信都需要建立新的连接。

2024-09-15 18:13:10 988

原创 Java Netty框架介绍

它提供了一种高效、灵活的方式来处理网络 I/O,尤其适用于需要处理大量并发连接的应用程序。Netty 拥有活跃的社区和丰富的文档支持,这为开发者提供了大量的资源和示例,帮助解决开发过程中遇到的问题。Netty 采用事件驱动模型,所有的 I/O 操作都是异步的,这使得它能够处理大量的并发连接而不会阻塞。总之,Netty 的设计使其在处理复杂网络通信任务时非常出色,为开发者提供了强大的工具和灵活的配置选项。Netty 通过提供全面的异常处理机制和高效的资源管理,确保了应用程序的稳定性和可靠性。

2024-09-15 17:33:59 650

原创 Freeswitch 解决32秒 ACK TimeOut自动挂断问题

32秒断开可能与SIP或RTP的超时设置有关在FreeSWITCH的生产环境中遇到了大量通话在32秒后断开的现象。通过抓包分析中发现,SIP消息中的Contact地址被错误地设置为媒体地址。这种情况确实会导致SIP消息和媒体流的同步问题,从而引发通话中断。所以导致在发送200ok接通后,对方ack回不来,32秒后自动拆线(ACK Timeout)。

2024-09-13 11:40:29 306

原创 PaddlePaddle更改缓存位置(windows版本)

PaddleSpeach默认安装后,本地虽然有模型的运行相关环境,但是没有实际模型数据,这时系统会根据命令行查找相关模型,如果不存在就会去网上同步下载。这样随着模型的增多,空间占用越来越多,严重影响机器运行,急需更改模型缓存目录,根据官方文档,只需设置相应的变量环境即可。配置完成后,需要重启相关语音识别系统,配置才生效,这样相关模块的就下载到了对应的目录。首先配置一个公共的Paddle_home作为根,其他相关模块引用该根模块。

2024-09-12 16:05:18 682

原创 Java 把mp3文件转为wav格式文件

第四步: 写入WAV文件头。步骤 描述。第一步: 加载MP3文件。第二步: 创建音频输入流。第三步: 创建音频输出流。第六步: 关闭输入输出流。第五步: 写入音频数据。

2024-09-12 10:57:37 180

原创 ‌PaddleSpeech目前不支持在AMD GPU上进行训练

此外,尽管PaddlePaddle支持NVIDIA显卡的CUDA驱动和AMD显卡的ROCm架构,但官方明确表示不支持使用AMD显卡进行训练,建议使用NVIDIA显卡进行训练。因此,对于需要GPU加速的训练任务,如果用户拥有AMD显卡,可能需要考虑使用其他支持AMD GPU的训练框架,或者使用云服务等方式来解决GPU训练的问题。此外,虽然PaddlePaddle支持AMD显卡的推理部署,但这主要是通过源码编译的方式实现的,且对于普通用户来说,自行编译源码可能存在一定的技术难度。(显卡是由GPU、显存等组成)

2024-09-11 09:24:02 836

原创 PaddleSpeech TTS API与流式速度对比(windows Java版)

PaddleSpeech语音识别系统,API模式和流式模式的相应时间的对比,希望对大家有所帮助!

2024-09-10 18:52:04 1059

原创 FreeSwitch之TTS 对接paddlespeech (windowsJava版)

本来计划FreeSwitch 通过tts_commandline对接第三方语音合成,但是由于在家安装的是windows版本,系统安装后mod缺少commandline模版,所以导致无法使用该模版。系统自带的TTS引起filter效果非常差,且不支持中文语音合成,导致在测试的过程中很多工作进行不下去。家里的电脑是windows10操作系统,安装的也是windows版本的FreeSwitch v1.11.2版本。第三步:代理模块请求语音服务器获得音频流,存储到FS指定的位置。监听FS发送过来的指令。

2024-09-10 16:45:07 351

原创 PaddleSpeech 本地部署+启用流式服务

关于如何Windows本地搭建:PaddleSpeech 的window环境搭建搭建完成后,只要使用PaddleSpeech的命令行或python模式进行执行,但是如果要想通过API或Stream模式,还需要单独启动相关web/流式服务即可,关于流式的相关参考资料安装完成后,进入相关目录可以看到Server相关信息: 通过以上我们可以看到安装目录下缺少conf配置文件,关于配置文件我们需要去下载相关源码,然后再Demo文件中存在相关配置:说明:语音合成-onnx模型速度比较快启动流式 ASR 服务:

2024-09-10 13:32:43 1042

原创 Java实现音频流录制或保存wav格式到本地

在Java中处理音频数据并保存到本地文件是一项常见的需求。你可以使用Java标准库中的包来完成这项任务。下面是一个详细的指南,介绍如何录制音频并将其保存为WAV文件。

2024-09-10 12:10:27 1089

原创 Python语言-NLTK库

NLTK(Natural Language Toolkit)是一个用于自然语言处理(NLP)的Python库,它为语言数据的处理、分析和建模提供了丰富的工具和资源。NLTK广泛应用于学术研究、工业界以及教育领域。以下是对NLTK的详细介绍,包括安装方法、主要特性、基本和高级功能,以及实际应用场景。Github地址:https://github.com/nltk/nltk。

2024-09-09 08:53:24 1003

原创 paddlespeech使用离线模型

如果出现找不到bpe_bpe_11297模型的bug,则需要在model.yaml中修改参数spm_model_prefix为这个文件所在的相对路径。当第一次安装好paddlespeech时候,开始使用时候后,因为模型不存在,所以会等一段时间从互联网上下载到本地。进入目录可获取对应的模型压缩包,放在你想要的位置进行解压。这说明本地不存在相对应的模型,程序从互联网上下载。这两个参数必须填写,否则还是会使用下载地址的模型。

2024-09-09 07:35:04 381

原创 PaddleSpeech 的window环境搭建

‌PaddleSpeech‌是百度飞桨(PaddlePaddle)深度学习平台下的一个语音服务工具包,它提供了一系列功能,包括语音识别、语音翻译、语音合成等。例如PaddleNLPPaddleSpeech基于飞桨的语音方向模型库,支持大量基于深度学习前沿和有影响力的模型,为开发者提供了便捷、高效的语音处理解决方案。PaddleSpeech特别关注于解决实际应用中的挑战,例如中英文混合语音识别。

2024-09-08 23:24:17 1215

转载 计算机CUDA介绍

跑深度学习需要用到GPU,而CUDA就是GPU和程序(如python)之间的桥梁。CUDA的环境依赖错综复杂,环境配置成为深度学习初学者的拦路虎。同时网上教程大多为解决某个具体环境配置报错,或者分别讲解CUDA、CUDAtoolkit(CUDA工具包)、CUDNN、NVCC等概念,并没有从计算机体系结构的角度将其层次化。故做此文,旨在帮助深度学习入门者从宏观上建立一个CUDA体系,而不是仅仅停留在报错才去了解的摸黑阶段。本文尽可能采用自顶向下的金字塔式讲解,使得文章抓住主干,逻辑层次清晰。

2024-09-08 13:27:30 263

原创 FreeSwitch中Speak用法

speak主要使用TTS技术进行文本转语音进行播放,phrase中的宏speak-text也是使用TTS技术以语音方式播放文本,phrase可以嵌套在playback中。TTS(text to speech)是将文本转换成语音的一项技术,又称为语言合成(Synthesis),作为AI语音交互,TTS是必不可少的一个环节。如果不指定engine和voice,可以通过通道变量tts_engine和tts_voice来指定引擎和发言人。什么情况下使用TTS,什么情况下使用录音呢?engine:引擎名称。

2024-09-06 07:32:54 418

原创 FreeSWITCH的整体结构

全面介绍FreeSwitch

2024-09-05 18:28:09 1270

原创 FreeSwitch的mod_flite详解

freeswitch默认提供了语音合成,mod_flite模块负责实现TTS语音合成,不支持中文只能实现英文合成,发音效果比较生硬,仅支持英文,不过用来学习足够了。Flite(又名Festival Lite)是一款完全免费的小型可嵌入TTS(文本到语音)引擎,适用于大多数操作系统平台,例如:FreeBSD,Mac,Linux和Windows。声音是16khz,voice支持:slt(女声)rms(男声)awb(男声)kal(男声)。

2024-09-05 13:28:20 331

原创 FreeSwitch中tts_commandline详解

mod_tts_commandline模块,本身没有TTS能力,而是通过调用TTS引擎的命令生成语音文件,tts命令可以配置,最终实现自动TTS语音播放的功能。tts_commandline通过命令来执行TTS功能,生成一个声音文件,进而播放。

2024-09-05 12:29:56 1143

原创 Freeswitch中Say的详解

在FreeSwitch开源语音系统中,Say命令是一个非常有用的命令,使用此命令可以实现系统发声,构建功能复杂的交互式场景,Say接口将预先录好的声音对特定的内容放音,支持多语言,如果要使用复杂的语音还需要专门的TTS结合Speak来实现。

2024-09-05 07:49:06 866

原创 Freeswitch实现中文语音包(超详细)

FreeSwitch实现中文语音实现,提供了可用的中文语音包下载地址,详细的介绍模块的编译、安装和配置,方便国人开发调试。

2024-09-04 17:30:39 480

原创 FreeSwitch 实现IVR语音菜单导航(Java ESL)

本文通过Java eventSocket与FreeSwitch的交互,主要实现功能:给用户播放提示音,让用户作出选择。通过ESL实现语音菜单功能,方便广大爱好者学习使用。

2024-09-04 08:56:04 318

原创 FreeSwitch 通过ESL实现IVR自动话务台

主要介绍java通过ESL的outbound实现FreeSWITCH的IVR功能,交互式语音应答,也就是我们说的电话语音菜单,可以使用预先录制的语音或TTS进行自动应答,提供菜单导航,。监听用户按键处理,和业务系统交互,例如:数据库的查询,订单获取等。

2024-09-03 13:30:47 699

原创 FreeSwitch 语音验证码的实现

相比较来说,语音验证更加便捷,语音验证码以电话语音的形式,不会被手机安全软件拦截,不会受运营商对短信通道控制的影响,无需等待,高效验证,到达率更高,用户体验更好。现在验证码的形式有很多,相信大家在日常生活或者工作中都遇到过,比如图形,数字,字母,手机短信,语音验证等等,说到安全级别高,那肯定就是,语音验证码和短信验证码了。相对来说,短信验证码使用的比较普遍,但偶尔也会出现收不到短信验证码的情况,有可能是运营商的原因,也有可能是用户自己设置了拦截或者手机出现了问题。因为验证码是通过信道变量动态实现。

2024-09-02 14:17:59 475

原创 FreeSwitch分机状态解析和Java DB实现

虽然我们可以通过ESL的指令完美的获得的相关坐席状态,但是这也无疑是增加FreeSwitch的负担,如果应用程序可以直接通过DB获得更加方便。通过以上数据可知,channel表只是记录通道接通,calls记录的是当a-leg与b-leg进行通话才有的数据,是实际产生的会话。FreeSwitch默认数据库是SqlLite轻量级数据库,如果我们使用Java链接FreeSwitch数据库。Java通过DB直接获取FreeSwitch坐席和注册用户状态,比直接 通过相关指令获得更加直接可控。

2024-08-30 17:28:35 522

原创 FreeSwitch数据库详解

FreeSwitch默认SQLITE嵌入式数据库详细介绍,FreeSwitch核心数据库表的作用,以及Java链接数据库获得相关坐席、注册等相关状态。增加FreeSwitch如何禁用Sqllite数据库。

2024-08-30 16:21:29 640

原创 FreeSwitch 分机状态解析和ESL实现

本文主要讲解FreeSwitch查询分机状态以及使用ESL实现期功能。以及JAVA通过ESL通过使用相关指令查看分机相关状态。

2024-08-30 14:04:33 908

原创 FreeSwitch通过WebRTC实现语音通话

FreeSwitch使用WebRTC 实现网页通话,本文主要使用JSSIP库,开发编写网页软电话的呼叫和接听实现。本文主要包括:FS的WebRTC配置和前端代码实现。

2024-08-27 16:39:27 441

原创 FreeSwitch使用HTTP服务接受话单

FreeSwitch 通过mod_format_cdr模块,把话单cdr通过http方式传递给后台服务器。后台服务根据话单和预设的短信模版实时触发短信(SMS)信息。本章主要介绍FreeSwitch+SMS系统实现批量外呼下的,挂机短信功能。

2024-08-27 15:20:00 331

原创 Freeswitch动态配置方案XML_CURL

mod_xml_curl模块主要实现一个集中管理配置的配置中心,统一管理所有fs的配置,并可以实现动态的修改。它由一台WEB 服务器提供服务,当有用户注册(或 INVITE)请求时,FreeSWITCH 向你的WEB服务器发送请求,通过一些类的业务逻辑,生成一个标准的XML文件。2,configuration每次要添加新的配置的时候,调用frees witch的一下命令,就会请求接口,把新的配置刷新到内存中:sofia profile external rescan。4,phrases,语音短语管理。

2024-08-15 23:05:20 733

原创 FreeSwitch的Dialplan拨号计划

主要讲解FreeSwitch的拨号计划原理和应用场景,以及XML配置文件的与语法规则

2024-08-14 09:16:17 1138

原创 JavaESL实现FS的按键监听播放音频

以上方案只是简单的实现按键监听,主要还是通过命令主动外呼实现,一般的呼叫中心是通过客户的主动拨通座机号,然后实现实现按键的接听,现在实现通用版拨号接通以及监听用户相关按键事件。首先在deafult.xml或public.xml中增加拨号计划,本文主要监听1234拨号(客服机器人),实现不同按键下的音乐播放。有的小伙伴说,这种代码方式实现比较麻烦,也不够灵活,最好都能在配置中心实现。Jave ESl 通过内联接通FreeSwitch,订阅FS的相关事件,通过监听不同的按键实现不同音频的播放。

2024-08-13 12:32:53 206

转载 FreeSwitch实现IVR呼叫中心

主要介绍基于FreeSwitch的语音菜单IVR的实现过程。

2024-08-13 11:39:41 188

原创 FreeSwitch音频多种播放

本文主要介绍freeSwitch内置的多种语音播放方式,IVR、TTS以及默认的多种音频文件等/

2024-08-13 10:09:38 589

原创 FS+Lua+TTS实现IVR(互动式语音应答)

IVR(Interactive Voice Response)即交互式语音应答,也就是我们说的电话语音菜单,可以使用预先录制的语音或者TTS进行自动应答,提供菜单导航,主要用于呼叫中心系统。我们主要介绍FreeSWITCH提供的IVR功能。

2024-08-13 07:46:58 335

原创 FreeSwitch与Java通信ESL

主要通过Java ESL链接FreeSWITCH的简单例子,通过异步发送呼叫相关指令和监听FS的相关事件,为今后搭建呼叫中心或智能外呼做准备。

2024-08-12 13:46:08 560

web学习笔记

web学习之路的笔记,主要从web兴起和历史演变总结。主要讲解 了浏览器、服务器、网络http协议和相关web自动化等

2018-08-15

Scala学习技术教程

一本很好的Scala学习教程,带有丰富的课后习题,是一本初学者的知识指导!

2017-10-29

scale编程技术

学习Scala的必备书籍,能快速入门学习相关核心技术,书中降到很多实用的编程技巧和方法论,是一本入门的好资料

2017-10-29

日历黄历源码

体积最新的万年历源码,左右滑动换月份,支持黄历,非常不错的代码,希望大家能够喜欢。

2014-02-26

天气预报源码

中国城市天气预报源码,支持定位分享功能。支持PM2.5天气实时数据,代码简介欢迎大家下载使用。

2014-02-26

天气PM2.5源码

中国天气PM2.5客户端源码,支持目前中国主要城市。

2014-02-26

OPlayer依赖的库文件

Vitamio 是一个针对Android和iOS的开源framework类库。

2014-02-26

android jqueryMobile 类库和实例源代码

android下的Jquery源代码实例和类库!希望对你有所帮助!

2011-11-28

android 经典项目--跑步机源代码

一款android跑步机源代码,现在分享给大家,希望对大家有所帮助!

2011-11-28

android 火车票查询源代码

这是一款android版的火车查询源代码,包好所剩下车票的多少。到达每站的时刻,内容很全,实时刷新! 现在供选出源代码,希望对开发者有所帮助!

2011-11-28

android 把图片切成正方形

主要是android版本对所有图片转化为正方形。

2011-07-18

javaMe LWUIT使用教程

此教程帮助新手更快的学习javaMe GWUIT插件,里面有很多经典的例子,是新手的首选资料

2010-11-29

javaMe LWUIT源码 很好使用的j2MeUI插件

此插件主要使用Me下的UI开发,提供的接口,可以让开发者开发漂亮的UI展示图。使用很方便

2010-11-29

java写的围棋程序源码

一个使用java写的,围棋程序。 很适合初学者学习,研究。

2010-10-12

c#写的桌面提醒程序

使用C#写的一个桌面小应用程序,定时提醒,任务计划列表。可以修改时间和计划内容。 非常适合初学者或刚学不就的新手。有源代码,请研究使用!

2010-10-12

JAVA桌面截图程序

用Java做的桌面截图精灵,含源代码。 代码执行效率高,在jdk下即可运行。

2010-04-07

Java学生管理系统

用Java写的结合Java多媒体程序设计,带有声音按钮的学生管理系统。

2010-01-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除