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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字图像处理知识点

数字图像处理知识点 一、绪论1、数字图像处理相关概念2、数字图像处理流程1.3 数字图像处理主要研究内容二、视觉与色度基础1、图像传感器与二维成像原理2、三基色2.1 三基色原理2.2 亮度方程3、HSI模型3.1 HSI模型优点3.2 RGB到HSI转换三、数字图像处理基础1、图像的数字化及表…

linux Shell编程之条件语句

条件测试操作 test命令 条件测试操作 Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0(真true)时表示成功,返回值为非0值(假false)时表示失败或异常。 t…

C++ | Leetcode C++题解之第77题组合

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> temp;vector<vector<int>> ans;vector<vector<int>> combine(int n, int k) {// 初始化// 将 temp 中 [0, k - 1] 每个位置 i 设置为 i 1&#xff0c;即 [0, k - 1] 存…

单例模式析构时持久化

#include <iostream> #include <fstream> class Singleton { private: // 私有构造函数和拷贝构造函数/赋值运算符&#xff0c;确保单例 Singleton() { // 构造函数中的初始化代码 std::cout << "Singleton created\n"; } ~Singleton()…

用最简单的示例去理解:Dijkstra最短路径算法

Dijkstra算法是一种用于解决单源最短路径问题的经典算法&#xff0c;它能够计算出从单个源节点到图中所有其他节点的最短路径。 以下是Dijkstra算法的基本步骤&#xff1a; 初始化&#xff1a;将起始节点的距离设置为0&#xff0c;将所有其他节点的距离设置为无穷大&#xff0…

如何在您的域名中使用 Google Apps 创建 SPF 记录

关于 SPF 记录 SPF 记录是一种域名服务&#xff08;DNS&#xff09;记录&#xff0c;用于标识哪些邮件服务器被允许代表您的域发送电子邮件。它与在您的 DNS 区域中添加 MX 或 A 记录一样简单。 为什么它很重要&#xff1f; 如今&#xff0c;几乎所有滥用电子邮件消息都携带…

OpenSPG docker 安装教程

文章目录 前言自述 一、OpenSPG1.介绍 二、安装步骤1.安装服务端2.客户端部署 前言 自述 我最近是想结合chatglm3-6b和知识图谱做一个垂直领域的技术规范的问答系统&#xff0c;过程中也遇到了很多困难&#xff0c;在模型微调上&#xff0c;在数据集收集整理上&#xff0c;在知…

echarts饼图渲染

在Vue中使用ECharts渲染饼图&#xff0c;你可以遵循以下步骤&#xff1a; 1. **安装ECharts**&#xff1a; 在你的Vue项目中&#xff0c;首先需要通过npm或yarn来安装ECharts。 npm install echarts --save 或者 yarn add echarts 2. **引入ECharts**&#xff1a; 在你的Vue组…

Spring中的FileCopyUtils:文件复制的利器与详解

1. 概述 在Spring框架中&#xff0c;FileCopyUtils是一个用于文件复制操作的实用工具类。它提供了一系列静态方法&#xff0c;简化了文件从输入流到输出流、从文件到文件等的复制过程。这些方法都基于NIO&#xff08;New I/O&#xff09;技术&#xff0c;提供了高效的文件复制…

面向侧扫声纳目标检测的YOLOX-ViT知识精馏

面向侧扫声纳目标检测的YOLOX-ViT知识精馏 摘要IntroductionRelated WorkYOLOv-ViTKnowledge DistillationExperimental Evaluation Knowledge Distillation in YOLOX-ViT for Side-Scan Sonar Object Detection 摘要 在本文中&#xff0c;作者提出了YOLOX-ViT这一新型目标检测…

Sealos急速部署生产用k8s集群

最近一段时间部署k8s全部使用sealos了&#xff0c;整体使用感觉良好&#xff0c;基本没有什么坑。推荐给大家。 使用 Sealos&#xff0c;可以安装一个不包含任何组件的裸 Kubernetes 集群。 最大的好处是提供 99 年证书&#xff0c;用到我跑路是足够了。不用像之前kubeadm安装…

【6D位姿估计】FoundationPose 支持6D位姿估计和跟踪 CVPR 2024

前言 本文介绍6D位姿估计的方法FoundationPose&#xff0c;是CVPR 2024的满分论文&#xff0c;支持6D位姿估计和跟踪。 通过大规模的合成数据训练&#xff0c;具有强大的泛化能力&#xff0c;在测试新物体时&#xff0c;无需进行微调。 论文地址&#xff1a;FoundationPose:…

1688数据分析实操技巧||1688商品数据采集接口 数据分析

今天&#xff0c;聊一聊B2B平台的数据分析&#xff0c;以1688国内站为例。 1688平台数据接口 1688也属于阿里巴巴的体系&#xff0c;跟淘宝天猫运营很像&#xff0c;因此很多淘宝天猫的玩法调整后也适用于1688。数据分析也是如此。 在1688搞数据分析&#xff0c;搞数据化运营可…

绘唐3 零基础系列教程

绘唐3 团长董事长,即可下载工具 第一讲:安装注册 日期:2024-04-01 17:50:10 录制文件:查看 第二讲:SD,MJ出图配置演示出图 日期:2024-04-01 18:06:46 录制文件:查看

不使用EF框架实现数据库增删改查

创建一个通用的数据访问层 (DAL) 类&#xff0c;让所有需要操作数据库的 DAL 类都继承这个基类&#xff0c;以实现通用的增删改查方法。下面是一个简单的示例展示如何实现这样的通用基类&#xff1a; public class BaseDal<T> where T : class {protected string connec…

【算法训练 day22 最大二叉树、合并二叉树、二叉搜索树的搜索、验证二叉搜索树】

目录 一、最大二叉树-LeetCode 654思路 二、合并二叉树-LeetCode 617思路 三.二叉搜索树的搜索-LeeCode 700思路 四.验证二叉搜索树-LeeCode 98思路 一、最大二叉树-LeetCode 654 思路 本题还是对数组进行切割&#xff0c;然后建立二叉树&#xff0c;递归方式自然是先序遍历。…

代码随想录leetcode200题之二叉树

目录 1 介绍2 训练3 参考 1 介绍 本博客用来记录代码随想录leetcode200题中二叉树部分的题目。 2 训练 题目1&#xff1a;递归遍历&#xff1a;中序、前序、后序 C模板如下&#xff0c; //中序 void traversal(TreeNode* cur, vector<int>& vec) {if (cur NULL…

【笔试训练】day22

1.添加字符 求最少不相等的位数&#xff0c;可以先求最多相等的位数。 在添加字符之前&#xff0c;A和B最多相等的位数是多少&#xff1f;由于A后面可以添加字符&#xff0c;也就使得A字符可以在B的任意一个位置开始比较。遍历一遍这个比较的起点&#xff0c;从这个起点开始跟…

统计二进制中1的个数

编程题&#xff1a; 求一个整数&#xff0c;在内存当中存储时&#xff0c;二进制1的个数。 目录 1.第一种解法2.第二种解法3.第三种解法 1.第一种解法 一个整型的数字共32个比特位&#xff0c;每个比特位如何判断是否为1&#xff1f;只需让这一位和1进行按位与即可 public s…

Linux中的简单操作 ls/tar/pwd/cd/mkdir/touch 等

目录 前言 安装和卸载软件包 ls 查看指定路径下的文件和文件夹 tar 解压缩/压缩命令 pwd 查看当前路径 cd 改变目录 mkdir 创建目录 递归创建 rm rmdir 删除文件或目录 touch 创建文件 ll、echo、重定向符&#xff08;>,>>&#xff09; ll echo 重定向符…