microsoft的azure语音,开发环境运行正常,发布到centos7线上服务器之后,无法运行

最近在做AI语音对话的功能,用到了azure的语音语音服务,开发的时候还算顺利,部署到线上后,发现在正式服上无法完成语音转文本的操作,提示:

org.springframework.web.util.NestedServletException: Handler dispatch
failed; nested exception is java.lang.UnsatisfiedLinkError:
com.microsoft.cognitiveservices.speech.SpeechConfig.setTempDirectory(Ljava/lang/String;)V

关键是我在测试服上运行也是好好的,有点莫名其妙。
谷歌搜索该异常的时候就看到这么个说法,说是centos7环境没有安装azure语音SDK导致的。
在这里插入图片描述
然后顺利找到官方的centos7安装语音SDK的解决方案:
https://learn.microsoft.com/zh-cn/azure/ai-services/speech-service/how-to-configure-rhel-centos-7

以为很快就能解决该问题,可是按照官方的操作流程执行下来,发现报错还是一样。然后又在官方文档翻了好久,以为是还有哪里的环境没有配置好,整到后面都想把服务器重装了,改成centos8,因为在我测试服的centos8服务器上一切运行正常。但是由于服务器上的服务有点多,怕数据丢失,最终还是回来继续折腾这该死的centos7。我发誓以后再也不装centos7了,要是再装就是个大傻叉!

然后就继续研究官方的文档,发现文档中环境设置这一部分,其实配置的是临时环境变量。
在这里插入图片描述
于是就求助万能的Chatgpt,把配置环境变量这块把环境变量做成永久的。
操作如下:

echo 'export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

执行最后一条命令的时候,一开始我是直接执行官方文档给出的命令,后来问了GPT之后才发现其实是个待填项,这个差点把我自己给蠢哭
知道是待填项之后,由于我代码中的版本是1.34.1,于是我就把命令改成了:

export LD_LIBRARY_PATH=/path/to/extracted/SpeechSDK-Linux-1.34.1/lib/centos7-x64:$LD_LIBRARY_PATH

配置完之后,发现好像还真有用,因为服务端已经不报错了。但是是解析出来的文本一直空!我已经想骂娘了。。。。。。

然后又是找各种资料,又是求助Chatgpt,才得知/path/to/extracted/SpeechSDK-Linux-1.34.1/lib/centos7-x64是个真实的目录地址,可是我的服务器根本就没有这玩意。后来想着是不是需要额外下载,但是微软官方的文档上根本没找到这玩意,各个搜索引擎上也是没有找到。然后又开始研究官方文档的“排查SDK问题”。
在这里插入图片描述

然后找到了个方法是说可以给语音服务加日志。于是我在我的代码中加了一下的日志跟踪。不然真的是完全束手无策。。。程序没有报错信息,但是语音就是识别不了(建议所有的语音服务都加上日志跟踪,否则异常了根本没地方查!)
在这里插入图片描述

加完之后再日志文件中确实看到了报错信息,但是这报错信息又误导了我好久!

ISpxNamedProperties::GetStringValue: this=0x0x002ba008128800; name='RESULT-ErrorDetails'; value='Connection failed (no connection to the remote host). Internal error: 1. Error details: Failed with error: WS_OPEN_ERROR_UNDERLYING_IO_OPEN_FAILED
wss://JapanEast.stt.speech.microsoft.com/speech/universal/v2

然后根据这错误信息又是一顿找问题!反正我已经不记得自己折腾了多少问题了。始终没有解决!我都担心系统的环境被我玩坏了。。。。。。。

后来在找这问题的过程中,偶然看到底下这个内容,发现他这个SpeechSDK-Linux.tar.gz貌似就是我前面要找的SDK。但是这玩意真的藏得太深了。。。。。。。。。我真的想骂人!我就想说,您在官方文档中直接把这下载地址附上去不可以吗?真的是法克!!!!而且还不是可点击下载的链接。。。。。
https://github.com/Azure-Samples/cognitive-services-speech-sdk/tree/master/quickstart/cpp/linux/from-microphone
在这里插入图片描述
我把图中的地址打开后才下载到我想要的sdk。这个下载下来后 ,找到官方的文档,然后结合Chatgpt,才把配置搞定:
https://learn.microsoft.com/zh-cn/azure/ai-services/speech-service/how-to-configure-rhel-centos-7

最后注意,官方文档中,这个也记得要执行
https://learn.microsoft.com/zh-cn/azure/ai-services/speech-service/quickstarts/setup-platform?tabs=linux%2Crhel-centos%2Cdotnetcli%2Cdotnet%2Cjre%2Cmaven%2Cnodejs%2Cmac%2Cpypi&pivots=programming-language-java

在这里插入图片描述

这一期就纯吐槽了!主要是想把这艰苦的过程记录下,下期我整了个完整的操作流程!
最后欢迎大家来我的站点体验下丝滑的语音服务(微信中打开这个地址体验比较好):https://pcai.wailikeji.com
需要项目源码的也可以加我v:bjxueai

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/605137.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024-05-08 问AI: 在深度学习中,介绍一下RMSProp 优化器

文心一言 在深度学习中,RMSProp(Root Mean Square Propagation)优化器是一种常用的优化算法,主要用于神经网络训练的梯度下降算法的变体。它是对Adagrad优化器的一种改进,旨在解决Adagrad中学习率过快下降的问题。 R…

HTML学习|初识表单post和get提交、文本框和单选框、按钮、多选框和下拉框、文本域和文件域、搜索框滑块和简单验证、表单的应用、表单初级验证

初识表单post和get提交 form标签是表单,method控制表单提交方式,get方式,表单填写的参数能够在跳转的url地址中看到,post方式是看不到的,action是向何处跳转表单数据 input标签,且typetext,是…

恋爱中的Java多线程:从单身到共舞的浪漫指南(一)

引言:孤独的线程,寂寞的码农 开篇小剧场: ​ 深夜,孤独的程序猿凯叔接到新任务:优化程序性能,探索多线程。这一任务成了他跳出孤独、寻求生活并行美好的契机。从简单的Thread类到复杂的线程池管理&#xff…

基于二维CS-SCHT变换和扩频方法的彩色图像水印嵌入和提取算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ............................................................. % figure; % subplot(121);…

GitLab使用记录

GitLab 文章目录 1. 常用命令1.1 配置邮箱 用户名1.2 查看配置1.3 基本语法 2. 连接gitlab3. 直接拉去项目 1. 常用命令 1.1 配置邮箱 用户名 git config --global user.name ShangzheChen git config --global user.email 735511377qq.com1.2 查看配置 cat ~/.gitconfig这…

SpringCloud微服务之Eureka、Ribbon、Nacos详解

SpringCloud微服务之Eureka、Ribbon、Nacos详解 1、认识微服务1.1、单体架构1.2、分布式架构1.3、微服务1.4、SpringCloud 2、服务拆分与远程调用2.1、服务拆分的原则2.2、服务拆分示例2.2、提供者与消费者 3、Eureka注册中心3.1、Eureka的结构和作用3.2、搭建eureka-server3.2…

图像处理:图像噪声添加

文章目录 前言一、高斯噪声二、椒盐噪声三、泊松噪声四、斑点噪声五、指数噪声六、均匀噪声总结 前言 本文主要介绍几种添加图像噪声的方法,用于数据增强等操作。 以下图为例。 一、高斯噪声 高斯噪声就是给图片添加一个服从高斯分布的噪声,可以通过调…

Java | Leetcode Java题解之第77题组合

题目&#xff1a; 题解&#xff1a; class Solution {List<Integer> temp new ArrayList<Integer>();List<List<Integer>> ans new ArrayList<List<Integer>>();public List<List<Integer>> combine(int n, int k) {List&l…

Java | Leetcode Java题解之第78题子集

题目&#xff1a; 题解&#xff1a; class Solution {List<Integer> t new ArrayList<Integer>();List<List<Integer>> ans new ArrayList<List<Integer>>();public List<List<Integer>> subsets(int[] nums) {dfs(0, nums…

Pikachu 靶场 CSRF 通关解析

前言 Pikachu靶场是一种常见的网络安全训练平台&#xff0c;用于模拟真实世界中的网络攻击和防御场景。它提供了一系列的实验室环境&#xff0c;供安全专业人士、学生和爱好者练习和测试他们的技能。 Pikachu靶场的目的是帮助用户了解和掌握网络攻击的原理和技术&#xff0c;…

scala速通(精简版)

1.变量和常量 var name [:VariableType] value // variable val name [:ConstantType] value // constant1.声明变量时&#xff0c;类型可以省略 2.类型定义后就不能修改言 3.变量声明必须有初始值 4.变量&#xff0c;常量分别用var&#xff0c;val声明修饰 2.标识符命名…

Google Pixel4手机刷机+Root+逆向环境详细教程

Google Pixel4手机刷机Root逆向环境配置详细教程 刷机工具下载 Windows10、Google Pixel4手机当前安卓10系统、adb工具、要刷的谷歌原生的Android11最新刷机包、安装google usb驱动、美版临时twrp-3.6.0_11-0-flame.img和美版永久twrp-installer-3.6.0_11-0-flame.zip、Magis…

webservice和TCP类型接口测试

1.webservice类型接口 1.1.webservice类型接口介绍 Web服务&#xff08;WebService&#xff09;是一种基于网络的应用程序接口&#xff08;API&#xff09;&#xff0c;可通过网络来进行通信和交互。它们使用标准化的协议和格式来进行通信&#xff0c;最常见的是使用XML&#…

Jmeter页面汉化和字体显示过小调整

在频繁解压使用Jmeter的时候&#xff0c;经常会遇到需要将页面的英文调整为中文&#xff0c;页面文字和编辑区域内容文字显示较小的问题&#xff0c;记录一下方便以后查阅。 1.页面汉化 Jmeter在解压启动之后页面显示是英文&#xff0c;如果需要修改为中文&#xff0c;可以修改…

【Python】在Windows Server上部署Flask后端服务器

想要在Windows Server上部署flask应用&#xff0c;当然不能只下一个anaconda配完环境之后直接启动py文件&#xff0c;这样的话后台会有一段警告&#xff1a; * Serving Flask app app* Debug mode: off WARNING: This is a development server. Do not use it in a production …

【氮化镓】GaN功率器件在转换器设计中的挑战

I. 引言(INTRODUCTION) 宽带隙(WBG)器件的重要性: 引言部分首先强调了宽带隙(WBG)器件在高频、高效率电力电子技术中的关键作用。这些器件,包括碳化硅(SiC)和氮化镓(GaN),相较于传统的硅功率器件,具有显著的优势。宽带隙半导体材料的高击穿场强允许设计更薄的漂…

了解内存函数

✨✨欢迎&#x1f44d;&#x1f44d;点赞☕️☕️收藏✍✍评论 个人主页&#xff1a;秋邱博客 所属栏目&#xff1a;C语言 前言 内存函数不止malloc、calloc、realloc、free还有memcpy、memmove、memset、memcmp。前四个的头文件是<stdlib.h>,后四个的头文件是<strin…

HTML学习|网页基本信息、网页基本标签、图像标签、超链接标签、列表标签、表格标签、媒体元素、页面结构分析、iframe内联框架

网页基本信息 DOCTYPE是设置使用什么规范&#xff0c;网页整个信息都在html标签中&#xff0c;head标签里包含字符集设置&#xff0c;网页介绍等信息&#xff0c;title标签是网页的名称&#xff0c;网页的主干都在body标签中 网页基本标签 标题标签 h1~h6都是标题标签&#x…

【项目实战】使用Yolov8 + tesseract 实现身份证信息解析(OCR) + 输入可为图片或者pdf + 完整代码 + 整体方案 + 全网首发

本项目可用于实验,毕业设计参考等。整体效果如下所示: 说明:图片来源于网络,如有侵权,请联系作者删除。 目录 一 数据集制作

WPF之多种视图切换

1&#xff0c;View切换&#xff0c;效果呈现 视图1 视图2 视图3 2&#xff0c;在Xaml中添加Listview控件&#xff0c;Combobox控件。 <Grid ><Grid.RowDefinitions><RowDefinition Height"143*"/><RowDefinition Height"30"/>&l…