自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 资源 (7)
  • 收藏
  • 关注

原创 snowboy+sherpa-onnx+Rasa+Coqui实现语音音箱【语音助手】

本系列主要目标初步完成一款智能音箱的基础功能,包括语音唤醒、语音识别(语音转文字)、处理用户请求(比如查天气等,主要通过rasa自己定义意图实现)、语音合成(文字转语音)功能。coqui主要在项目中完成接收rasa响应的内容,根据文本内容生成语音(TTS)。本文用到的一些安装包在snowboy那一篇的必要条件、和rasa的安装中已经完成了部分构建,coqui的api调用部分会把相关代码写到snowboy项目中,生成好语音文件后调用本机播放语音。

2023-08-08 21:30:00 1077 3

原创 snowboy+sherpa-onnx+Rasa实现聊天机器人【语音助手】

本系列主要目标初步完成一款智能音箱的基础功能,包括语音唤醒、语音识别(语音转文字)、处理用户请求(比如查天气等,主要通过rasa自己定义意图实现)、语音合成(文字转语音)功能。rasa主要在项目中完成接收语音识别内容,识别用户意图,根据意图执行相应动作,并将结果返回给调用端。本文用到的一些安装包在snowboy那一篇的必要条件中已经完成了部分构建,rasa的api调用部分会把相关代码写到snowboy项目中,处理完用户操作之后会打印响应信息。

2023-08-08 20:00:00 1553

原创 snowboy+新一代kaldi(k2-fsa)sherpa-onnx实现离线语音识别【语音助手】

本系列主要目标初步完成一款智能音箱的基础功能,包括语音唤醒、语音识别(语音转文字)、处理用户请求(比如查天气等,主要通过rasa自己定义意图实现)、语音合成(文字转语音)功能。语音识别、语音合成采用离线方式实现。语音识别使用sherpa-onnx,可以实现离线中英文语音识别。本文用到的一些安装包在snowboy那一篇的必要条件中已经完成了部分构建,在离线语音识别安装完成之后也会把相关代码写道snowboy项目中,语音唤醒之后调用语音识别翻译用户说话的内容。

2023-08-08 12:50:13 3537 3

原创 snowboy 自定义唤醒词 实现语音唤醒【语音助手】

准备唤醒词的音频文件录完之后自己检查以下声音有没有问题,如果命令报错可能是少安装包或者重新打开terminal。编辑一下Dockerfile,因为发现官网的不是慢就是其他报错编辑完成保存,然后构建镜像构建完成之后去运行容器生成自定义唤醒词模型执行完命令之后,model文件夹下会生成一个hotword.pmdl模型文件。

2023-08-07 22:00:00 2333 7

原创 JAVA+Netty根据二级域名实现多租户内网穿透功能【设计实践】

3、访客通过二级域名访问Nginx(c1.test.com),Nginx转发请求到服务端访客代理接口(16002端口),服务端监听到之后解析二级域名,获取客户端专用连接通道,创建访客ID,然后通过(server-client通道)向客户端发送指令,客户端接收指令后连接到真实服务端口(8080,可根据启动参数修改),连接真实服务成功后,客户端会重新向服务端建立一条连接(访客-server通道),服务端把访客和该通道进行绑定。这三步最终形成了(访客-Nginx-代理-客户端-真实服务)完整的通道。

2023-01-29 22:00:00 1706 2

原创 turnserver (coturn + redis) 配置ICE server 临时用户密码【实践】

前端连接turn服务时一般都需要设置账号密码,由于都是在js中配置的,长期凭据相对临时用户安全性会差很多,本文通过程序生成临时的账号密码,把临时凭据设置到Redis中,turn服务验证的时候直接对比Redis中的账号密码,当Redis中key过期时,turnserver返回Unauthorized校验不通过。本文用到docker、Redis,需要提前准备好。

2022-12-24 18:22:53 1494

原创 Java+Netty+WebRTC、语音、视频、屏幕共享【聊天室设计实践】

本文使用webtrc实现了一个简单的语音视频聊天室、支持多人音视频聊天、屏幕共享。​音视频功能需要在有Https协议的域名下才能获取到设备信息,正式环境可以申请一个免费的证书复杂网络环境下需要自己搭建turnserver,网络上搜索大多是使用coturn来搭建turn服务turn默认监听端口3478,可以使用webrtc.github.io测试服务是否可用本文在局域网内测试,不必要部署turn,使用的谷歌的stun:stun.l.google.com:19302

2022-12-09 00:33:58 10522 6

原创 JAVA基于Netty实现内网穿透功能【设计实践】

本文实现了一个简单的内网穿透服务,可以满足代理基于TCP协议的项目,如Tomcat、Redis、MySQL、windows远程桌面等。拆分了三个项目:1、cc-common项目:存放了消息格式和消息编解码器2、cc-server项目:内网穿透服务端项目3、cc-client项目:内网穿透客户端项目内网穿透的实现过程主要分三步1、启动服务端,这时服务端监听了两个端口(16001,16002,可根据启动参数修改),一个用来接收客户端请求(16001端口),一个用来接收访客代理(16002端口)2、启动客户端,客

2022-12-05 23:26:21 5235 7

原创 Java Annotation AbstractProcessor,通过AST修改class文件,修改方法定时任务注解,编译期解耦第三方组件

自定义一个定时器注解,我把spring的Scheduled注解作为自定义注解的结构体,方便我们编译时替换。@Retention(RetentionPolicy.SOURCE)// 编译期注解}

2022-09-24 18:19:38 1311

原创 Springboot、maven 打包瘦身,去除依赖的jar【springboot外置jar、配置文件】

分布式项目、微服务项目一般都会引用许多公共依赖,每次maven打出来的jar包上百M,不利于运维工作、可以在打包时隔离项目本身的jar和依赖的公用jar包,这样项目本身包可以做到很精简。本文主要把项目依赖的包和项目的配置文件在打包时导出到本身springboot 的jar包 外。本文项目中导入依赖用到了两种方式,一是直接通过maven库,二是通过导入本地第三方jar。

2022-09-16 18:20:33 4326

原创 Spring项目集成Sentinel,自定义BlockException异常返回值

springmvc项目中集成sentinel,通过sentinel提供的控制台配置限流、熔断等规则,项目实现UrlBlockHandler,实现在catch到blockexception时进行自定义返回值处理sentinel的官网文档非常详细的介绍了如何下载部署控制台、以及如何接入各类型的项目框架,本文以mvc项目为例,集成sentinel。启动控制台。

2022-09-02 23:24:28 1519

原创 Springboot、Tomcat启动加载外部指定文件夹下的jar文件

把项目中的公共jar包提取出来,放到自定义lib库文件夹中,方便统一分布式项目中依赖的jar版本,springboot是jar方式启动,Tomcat是直接start启动,加载外部jar的方式不同,下面分别介绍两种配置。

2022-09-01 23:05:06 2703

原创 Java ServiceLoader、Spring SpringFactoriesLoader、SPI方式解耦第三方组件

项目框架中引入了各种第三方组件,比如nacos、seata、mq、Redis、MySQL等等,这些三方组件一般都具有可替代性,如果把这些组件拿来直接使用会对原框架有一定侵入性,后期可能造成框架升级、运维等多方面的问题。使用SPI可以有效解耦三方组件,降低组件变更对原框架的影响,SPI需要原项目框架把可能用到的三方组件的功能抽象出接口,然后不同的组件按照SPI规范提供对应实现,完成对原项目框架的升级拓展。......

2022-08-31 20:31:45 466

原创 Springboot、Tomcat+skywalking 链路追踪、日志收集配置

skywalking适合分布式项目,零侵入源码,集成链路追踪,实现过程主要是在项目启动时使用java代理,把项目集成到skywalking中。

2022-08-24 22:37:19 2338

原创 Springcloud gateway + nacos灰度路由、非cloud项目通过Httpclient+nacos自定义lb灰度服务请求【设计实践】

nacos中服务的元数据存储灰度信息,HTTP调用微服务接口时header头中添加灰度参数,两个灰度信息进行匹配,匹配成功说明这次请求可以走当前服务实例,通过透传header头信息实现整个链路的灰度路由。将各个微服务项目注册到nacos中,在nacos服务列表中可以对服务实例配置元数据信息,比如我们规定灰度服务的元数据信息需要配置一个JSON字符串格式的内容。gray是自定义灰度元数据的名称,值为json字符串,里面的信息可以自定义,目的是和请求头中的灰度参数匹配。...

2022-08-10 06:30:00 1759

原创 Springcloud gateway网关+认证服务+token方式,入口层认证统一微服务鉴权【设计实践】

分布式项目的单点登录分为认证服务(单点登录服务端)和业务服务(单点登录客户端)两个角色,当访问业务服务时,认证服务客户端SDK校验一下是否有登录token,如果没有登录token,需要携带当前请求链接重定向到认证服务,认证通过后由认证服务重定向业务服务链接,实现单点登录。gateway实现单点登录客户端功能,一般如果前后端项目是分离的,如果请求中没有携带登录token,直接返回需要认证,前后端没有分离的项目,可以做页面重定向操作。本文主要讨论gateway的实现,认证服务需要自行实现。......

2022-08-04 13:05:27 6579

原创 Openresty+nginx图片服务器配置,添加http_image_filter_module模块

openresty本身没有默认集成image模块,需要手动编译openresty方式添加模块。openresty下载地址,如果之前机器上已经安装过openresty,那最好去官网下载一下相对应的openresty源码。

2022-07-31 22:10:38 1118

原创 Springcloud、Springmvc+Nacos注册中心实现服务注册

不管是springcloud还是springmvc实现服务的自动注册,都是在项目启动完成bean初始化时,调用nacos服务的API,实现的自动注册。

2022-07-18 10:28:17 1244 6

原创 Springmvc+Druid+Mybatis+Seata+Nacos+Http动态切换多数据源,分布式事务的实现

本文示例主要实现两个springmvc服务之间通过Http调用接口,实现两个服务的分布式事务,关键点在于调用方在http请求头中添加seata的TX_XID请求头,被调用方发生异常时手动回滚全局事务,nacos\seata部署参考上一篇springcloud版本。.........

2022-07-15 00:33:52 978 2

原创 Springmvc+Nacos+自定义Scope+自定义PropertyPlaceholderConfigurer,实现自动刷新配置文件

springmvc项目自定义PropertyPlaceholderConfigurer,在mergeProperties()中对接nacos配置中心,需要自动刷新配置文件的类添加@RefreshScope注解,监听配置中心文件更新,清理包含@RefreshScope注解的bean实现自动刷新配置文件官网:什么是 NacosSpring集成文档:Nacos Spring 快速开始参考之前写的博文:Springcloud+Druid+Mybatis+Seata+Nacos动态切换多数据源,分布式事务的实现使用的

2022-07-08 02:00:04 1288 3

原创 Canal、Canaladmin、Canaladapter多instance数据库表双向同步,TCP/Zookeeper、Rocketmq配置

目录背景配置下载MySQL配置单机模式配置Canaladmin配置Instance配置Canal配置Canaladapter配置集群模式(ZK)Canaladmin配置Canal配置使用RocketMQCanaladmin配置 Instance配置Canaladapter配置两个MySQL数据库实例中,实现order表双向同步增删改操作准备一台Linux,用来安装canal环境,需要提前安装JDK和MySQL,安装JDK是为了启动canal这三个项目,这个是必要的安装MySQL是因为admin用到了cana

2022-07-02 15:18:50 2547 4

原创 两台Linux文件夹单向同步【inotify、rsync、ssh】

两台Linux要实现文件夹备份功能,源机器文件夹中文件的新增修改删除操作,要同步到备份机。两台机器10.0.0.1;10.0.0.2,1机器为主机,2机器为备份机在备份机2机器中执行创建用户、配置密码在1机器中链接2机器inotify安装在1机器中安装inotify工具,用来监控文件变动,需要借助epel安装rsync一般情况下linux自带rsync同步配置1机器中有文件夹/home/filesync2机器也创建一个文件夹/home/filesync1机器创建一个sh脚

2022-07-01 20:27:18 1303

原创 Springboot+OpenCV+Linux(libopencv_java460.so、opencv-460.jar)人脸识别、人脸对比实现

与SpringmvcSpring+OpenCV+Linux(libopencv_java460.so、opencv-460.jar)人脸识别、人脸对比实现_殷长庆的博客-CSDN博客方式区别在于springboot是jar包方式启动的,jar\so\xml文件下载OpenCV+Linux(libopencv_java460.so、opencv-460.jar)-Java文档类资源-CSDN下载opencv load无法读取jar包中的so文件,1、在Linux某文件夹下提前预置so和xml这俩文件2、spr

2022-06-16 22:33:15 1373 2

原创 Spring+OpenCV+Linux(libopencv_java460.so、opencv-460.jar)人脸识别、人脸对比实现

opencv源码地址:https://github.com/opencv/opencv下载4.6.0版本:Releases · opencv/opencv · GitHub从git上找到对应版本号下载zip文件 上传到Linux中并解压接下来就是需要编译源码,这时候需要cmake命令,如果Linux自带的cmake版本低不好使或者是本机并没有装cmake那需要提前准备一下cmake执行编译源码过程中会用到java环境和ant,没有的话也需要提前准备接下来编译源码 出现下面的ant:

2022-06-09 16:55:28 2632 5

原创 Springcloud+Redisson分布式锁实现

去掉redisson-spring-boot-starter中依赖的redisson-spring-data,改成符合当前springcloud版本的依赖,我项目springcloud使用的是2.2.0版本,要替换成redisson-spring-data-22参考官方的配置:redisson/redisson-spring-data at master · redisson/redisson · GitHub使用...

2022-06-06 11:13:25 1319

原创 Springcloud+Druid+Mybatis+Seata+Nacos动态切换多数据源,分布式事务的实现

Mysql我使用的mysql8版本,部署在10.0.3.164服务器上,需要创建一个seata数据库并准备SQL脚本参考seata/script/server/db at 1.4.0 · seata/seata · GitHubNacosnacos我部署到了10.0.3.164这台服务器上中文官网:home从1.4.2版本开始支持从一个Nacos dataId中获取所有配置信息seata部署到10.0.3.171服务器上,开放8091端口,或者关闭防火墙,springcloud会访问这台服务器,所

2022-06-02 01:03:35 2281

原创 Springboot+Druid+Mybatis+Atomikos动态切换多数据源,分布式事务的实现

数据库为mysql5.7,可以准备两个,注意mysql-connector-java的版本要与数据库版本对应起来maven中加入Atomikos的依赖其他的依赖可以根据架构自己添加数据源注解,不同数据源的service方法上加上@DataSource注解,使用AOP切换数据源动态数据源数据源AOP数据源配置配置两个数据库数据源,为每个数据源配置一个SQLSessionFactory,这样不同数据源的业务使用自己的session,相互隔离,当发生数据源切换的时候,也不会造成找不到数

2022-05-31 22:16:30 856

原创 Filebeat+Redis+Logstash+Elasticsearch+Kibana搭建日志采集分析系统

环境说明Logstash、Elasticsearch、Kibana我放到一台机器上了,用Docker搭建的环境Redis单独一台机器Filebeat跟需要采集日志的项目在同一台机器安装Docker参考docker安装笔记安装Rediswget http://download.redis.io/releases/redis-6.0.8.tar.gztar xzf redis-6.0.8.tar.gzcd redis-6.0.8make# 默认方式启动rediscd .

2022-05-14 14:44:39 914

原创 Openresty/Lua/Redis/Mysql实现静态化网页加载

场景类似于秒杀活动,或者是有一些不常变动的网页,可以通过生成本地html文件,用户访问时直接通过nginx访问本地文件,不走或者减少操作数据库,以降低用户等待时间,提升用户体验。实践下载openrestyOpenResty - 下载然后解压备用新增lua工具1、在解压目录下的lualib文件夹下新建myutil文件夹2、新增并编辑redis_factory.lua文件,这个文件用来操作redislocal redis_factory = function(h)

2022-03-07 21:55:28 2255

原创 Nginx 图片、视频服务器配置

全配置user nginx;worker_processes auto;error_log /var/log/nginx/error.log;pid /run/nginx.pid;include /usr/share/nginx/modules/*.conf;events { worker_connections 1024;}http { log_format main '$remote_addr - $remote_user [$time_local] "$r

2022-03-07 19:43:40 3934

原创 JAVA 模拟邮箱服务器与主流邮箱传输邮件,使用(netty,javax.mail,dnsjava)

实现效果 1、接收QQ邮箱发过来的邮件 2、发送邮件到QQ邮箱基础概念 邮件从客户端发送到服务器这一过程中的角色 MUA(Mail User Agent):邮件用户代理,接收邮件的客户端,使用方是用户,负责把编辑好的邮件发送到MTA MTA(Mail Transfer Agent):邮件传输代理,邮箱服务器,负责邮件的接收,传输,接收之后检查收件人是不是属于自己邮箱,如果是,则交给MDA,不是则继续传输到下一个MTA MDA(Mail Del...

2022-03-01 23:04:42 4134 5

原创 使用rclone将本地文件或文件夹导入minio中

官网地址https://rclone.org/下载rclonecurl https://rclone.org/install.sh | sudo bash配置配置rclone的配置文件,rclone默认会读取/root/.config/rclone/rclone.conf如果该文件没有那手动创建一下即可配置文件内容如下[minio]type = s3env_auth = falseaccess_key_id = adminsecret_access_key

2022-02-26 22:25:03 2321

原创 Minio 入门,单机、集群部署踩坑,JAVA上传下载实践

官网地址https://min.io/官网文档https://docs.min.io/docs/minio-quickstart-guide.html下载地址https://dl.min.io/基础概念Object:存储到Minio的基本对象,如文件、字节流Bucket:用来存储Object的逻辑空间。每个Bucket之间的数据是相互隔离的。对于客户端而言,就相当于一个存放文件的顶层文件夹。Drive:即存储数据的磁盘,在MinIO启动时,以参数的方式传入。Minio中所有的对象

2022-02-25 23:20:57 3407 3

原创 spring获取项目中的全部API接口地址

import java.io.File;import java.io.IOException;import java.lang.reflect.Method;import java.util.Map;import java.util.Set;import org.apache.commons.io.FileUtils;import org.springframework.beans.factory.BeanFactoryUtils;import org.springframework.co.

2021-04-19 11:26:12 2217

原创 java中添加https证书,解决PKIX错误

在linux中部署了一个java项目,期间用到了https调用其他项目的接口,这个https证书是自己生成的测试证书,不会被java自带的安全证书库识别,调用时会报错:sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path

2021-03-30 19:33:42 1300

原创 Html+video.js+nginx播放m3u8视频

一、配置nginx,需要配置一下允许跨域访问location /v { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET'; root /; rewrite ^/v/(.*)$ /home/video/$1 break; limi

2021-01-22 21:28:20 1838

原创 FFmpeg(Linux)安装, MP4格式转m3u8格式

一、安装FFmpeg1、下载源码https://gitee.com/mirrors/ffmpeg2、把源码上传到linux文件夹/home/ffmpeg中,并解压3、安装yasm,因为编译FFmpeg需要,我使用的是yum安装yum install -y yasm4、执行配置编译命令,当执行make命令时会经过很长的时间,不要中断cd /home/ffmpeg./configuremakemake install5、查看是否安装成功ffmpeg出现一堆

2021-01-22 21:20:01 810 1

原创 Centos7-Nginx-LetsEncrypt acme.sh方式HTTPS-SSL证书安装笔记

acme.sh实现了acme协议, 可以从 letsencrypt 生成免费的证书.主要步骤:安装acme.sh 生成证书 copy 证书到 nginx/apache 或者其他服务 更新证书 更新acme.sh 出错怎么办, 如何调试下面详细介绍.1. 安装acme.sh安装很简单, 一个命令:curl https://get.acme.sh | sh这一步可能会出现Failed connect to raw.githubusercontent.c...

2020-12-14 18:45:31 569

原创 OpenVidu测试环境安装部署【3】环境安装-Browser安装笔记

接上文:OpenVidu测试环境安装部署【2】环境安装-server安装笔记https://blog.csdn.net/anshichuxuezhe/article/details/110206249OpenVidu分为两个部分:OpenVidu Browser:它是在客户端使用的库(可用于JavaScript和TypeScript)。它允许您创建视频呼叫,将用户加入其中,发送和接收视频和音频等。OpenVidu可用的所有操作均通过OpenVidu浏览器进行管理。 OpenVidu Server:

2020-11-26 23:22:08 1573 3

原创 OpenVidu测试环境安装部署【2】环境安装-Server安装笔记

接上文:OpenVidu测试环境安装部署【1】环境安装-docker安装笔记https://blog.csdn.net/anshichuxuezhe/article/details/110205069OpenVidu分为两个部分:OpenVidu Browser:它是在客户端使用的库(可用于JavaScript和TypeScript)。它允许您创建视频呼叫,将用户加入其中,发送和接收视频和音频等。OpenVidu可用的所有操作均通过OpenVidu浏览器进行管理。 OpenVidu Server:

2020-11-26 21:53:52 1548

webrtc /adapter-latest.js

webrtc /adapter-latest.js

2022-12-09

OpenCV+Linux(libopencv_java460.so、opencv-460.jar)

java+opencv人脸识别用到的资源文件 libopencv_java460.so\opencv-460.jar\lbpcascade_frontalface.xml 参考文章 https://blog.csdn.net/anshichuxuezhe/article/details/125204876

2022-06-09

xpdf-chinese-simplified

xpdf-chinese-simplified.tar

2017-02-06

excel导入数据到mysql中

导入excel中的数据到mysql中,支持一对多表关系,主表从表关系, 做法比较简单,主要解析一个json数据。

2016-11-30

httpClient4.3.4.zip

httpClient4.3.4.zip httpClient web开发所用jar包

2015-10-21

json(jar包)

json 所需要的jar包

2015-04-07

Javaapi中文文档

java api 中文文档

2015-04-07

javaapi中文

javaapi中文文档 【java 参考文档】java_api_1.6

2014-04-28

空空如也

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

TA关注的人

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