教你如何通过codeartside插件调用api,高效合成语音

华为云开发者社区 华为云开发者社区     2023-04-03     374

关键词:

摘要:本实验基于华为云自研CodeArts IDE,指导用户通过使用华为云API,来实现一个文字合成语音的应用。

本文分享自华为云社区《通过CodeArts IDE插件调用API,高效合成语音!》,作者:华为云PaaS服务小智。

实验内容:

CodeArts IDE定位华为云开发者桌面,是利用华为自研IDE内核技术,面向华为云开发者提供的智能化可扩展桌面集成开发环境(IDE),内置华为自研JAVA语言开发支持,搭载华为云行业和产业开发套件,提供极致的一站式用云和开发体验。
本实验基于华为云自研CodeArts IDE,指导用户通过使用华为云API,来实现一个文字合成语音的应用。实验分为了初阶、高阶、进阶三个版本。

  • 初阶版:预置好了一段工程示例,用户通过使用华为云API来实现语音合成的功能,从而合成语音文件
  • 高阶版:指导开发者如何利用华为云提供的SDK来编写代码,从而实现语音合成的程序

实验目的:

  • 通过完成此实验让开发者学习使用华为云CodeArts IDE,通过其强大功能完成应用开发
  • 通过完成此实验让开发者更加了解华为云API,基于华为云强大的API可以实现更多复杂的功能和应用

完成的注意事项:

1.用户需要实名认证才能免费体验
2.用户如果被华为云判断为黑产用户,则没有免费体验的权限
3.用户免费体验示例,必须进入体验页面

前提条件:华为云账号注册&实名认证

请注册华为云账号并完成实名认证,实验过程中请使用Chrome浏览器完成相关操作。
华为云账号注册步骤请参考:
https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0069252244.html
实名认证操作步骤请参考:
https://support.huaweicloud.com/usermanual-account/account_auth_00001.html

CodeArts IDE Online 云端体验

“点击访问CloudIDE产品首页”(需登录华为云账号),点击“免费体验云开发”按钮,进入IDE界面

CodeArts IDE(客户端)体验

1.1.1 下载CodeArts IDE(客户端)

“点击此处下载”CodeArts桌面版(需登录华为云账号),下载完成后安装到本地;

1.1.2 登录华为云,体验API

1.安装完成后,打开CodeArts IDE客户端,点击右上角登录按钮,登录华为云账号;



2.点击客户端右侧边栏中的华为云API插件,了解集成的华为云API能力

1.2 初阶版:体验语音合成API,合成一段语音

1.2.1 环境准备(一键式小程序)

1.点击此处下载一键式环境搭建小程序到任意目录(此目录不包含中文目录,否则可能会出现未知问题)

此小程序依赖你本地安装了7zip/WinRAR等解压工具,双击打开,如果你已经安装,输入y回车。

2.此时小程序会将2.2.2中的代码工程以及OpenJDK下载到小程序所在的目录中,并完成解压,打开代码工程,为工程配置JDK(如果出现未知问题,也可以按照2.2.2中一步步手动操作)

1.2.2 环境准备(手动初始化)

1.下载OpenJDK11到本地目录,然后解压到任意路径(需要记住此路径)

2.点击下载工程,解压到任意目录

在CodeArts IDE客户端点击“文件”-> “打开…”、“打开文件夹”,找到刚刚的工程目录,选择文件夹,然后选择此工程内打开

第一次加载Java插件需要完成初始化,需要等待一会儿,等待右下角的Initializing Java Language Server Features完成后开始下一步

3.为工程配置JDK

Java Smart Assist插件加载完成后,此时右下角会显示Language Server is ready 以及 提示为配置JDK。

点击左下角的“管理”按钮,选择“设置”,在弹出设置选项中依次选择“Java SmartAssist开发套件”->“Project Settings”-> “Project SDK目录选择”-> 找到刚刚JDK的解压目录 ->选择文件夹,此时工程右下角会显示加载JDK,需要稍等片刻

选择完成后可以关闭此配置项,IDE会自动帮您加载JDK

1.2.3 体验API

1.搜索API,在CodeArts IDE客户端内,打开“华为云API”,搜索“语音合成”,选择第一个搜索结果

2.右侧弹出RunTts详细情况,可以查看API相关信息,包括(API是干啥的,有哪些参数)然后选择“调试API”页签

3.输入需要合成的文字,例如“华为云软件开发生产线”,选择audio_format为.mp3,点击“调试”按钮,可以看到API的调试结果,可以看到“调试成功”,查看右下“响应结果”的“响应体”页签,可以看到返回的结果,“data”是音频的base64编码。

4.点击响应体右侧的“拷贝”图标按钮,再将左边侧边栏的华为云API页面切换到“工程页面”,找到src/resources目录,将结果备份到工程目录src/resources/APIResponse.json中

5.找到test目录下的测试类SisServiceTest.java,点击找到方法“should_return_audio_when_response_json()”,点击“Run‘All in SisServiceTest’”,最后可以看到目录下生成的音频文件。

1.3 高阶版:通过编写代码实现语音合成的应用

1.3.1 为程序配置AK/SK

代码访问API需要AK/SK,参考文档获取用户AK/SK,将其输入到resources文件夹下的credentials.properties文件中的ak、sk中

1.3.2 编写SDK代码

1.在editor中点击右键打开菜单,选择启用“华为云SDK代码补全助手”,在IDE中输入RunTts,DevKit会自动帮你联想出合适的API,选择RunTts,DevKit会帮你自动把SDK调用实现,并且将代码中涉及到的依赖自动import

2.点击编辑API参数,填入相关参数后,点击确定,生成API参数的代码

3.修改函数,return response

4.找到test目录下的测试类SisServiceTest.java,找到方法“should_return_audio_when_call_api”,点击“Run‘All in SisServiceTest’”,最后可以看到目录下生成的音频文件。

体验中可能遇到得问题:

  • Java语言服务(Java Language Server)加载失败/

在Java语言服务初始化时,如果关闭了IDE窗口、取消了加载等等情况,则会出现安装失败,点击重新安装即可。如果重新安装仍有问题,参考3.2解决方案。

  • 点击Java SmartAssist开发套件空白

原因可能是因为Java语言服务初始化失败导致,彻底解决改问题,找到C盘/用户目录下的.codearts文件夹,删除language-server文件夹,重新启动CodeArts IDE客户端,此时会重新加载Java语言服务

  • JDK没有加载/加载失败

这是因为工程的JDK没有配置,可以参考2.2.2中为第三步:工程配置JDK。
另外还有一种一劳永与的方法:
将下载并解压后的OpenJDK目录配置到电脑windows环境变量的JAVA_HOME变量中(如何设置windows环境变量,可以自行baidu),如图所示:

  • 在加载工程的时候出现Cannot resolve xxx或者 Could not transfer artifact xxx等

这是因为工程所依赖的二方包没有下载下来,工程中默认链接的是官方的下载源(在国外),可能因为网络问题或者其他问题导致链接不稳定,此时把配置文件修改成链接到国内的下载源:
点击下载最新的配置(settings.xml),将此目录(C盘用户目录下找到.codearts文件夹,然后按照此路径找到settings文件.codearts\\language-server\\2210.0.17\\language-server\\plugins\\maven\\lib\\maven3\\conf)下的文件替换

 

点击关注,第一时间了解华为云新鲜技术~

h5页面中如何调用cordova的插件?

最近有个项目,甲方用cordova做APP,我做H5页面他们集成,但是需要我H5页面调用他们的插件,我想能不能直接写cordova.exec(....),我想既然他们是调用我的H5,那么集成进去之后就有了cordova环境,但是好像没有实现,有哪位大神能够... 查看详情

教你如何拔取百度地图poi兴趣点

教你如何拔取百度地图POI兴趣点 通过聚合数据提供的接口,获取百度地图的POI兴趣点,并存储至数据库中。 实现:1、聚合数据百度POI接口说明调用聚合数据,首先得注册聚合。聚合数据提供的百度地图POI的接口有三个... 查看详情

如何通过 API 调用更新状态?

】如何通过API调用更新状态?【英文标题】:HowcanIupdatethestatefromanAPIcall?【发布时间】:2021-01-0413:28:09【问题描述】:我对我的服务器进行了调用,该服务器期望从该调用返回一个对象。constructor(props)super(props);this.state=todos:[];comp... 查看详情

如何通过改造使用带有 api 调用的参数

】如何通过改造使用带有api调用的参数【英文标题】:Howdoiuseaparameterwithaapicallusingretrofit【发布时间】:2021-12-1518:42:45【问题描述】:我需要根据用户的选择使用参数来访问不同的api查询。我正在尝试访问http://hp-api.herokuapp.com/api... 查看详情

如何通过 API 调用取消 PayPal 账单协议

】如何通过API调用取消PayPal账单协议【英文标题】:HowcanIcancelaPayPalBillingAgreementviaanAPIcall【发布时间】:2014-01-0120:46:49【问题描述】:我正在使用PayPalNVPAPI进行快速结账的参考交易。我创建计费协议并使用沙盒和生产环境中的协... 查看详情

Angular:如何通过 API 调用使用 JWT 身份验证

】Angular:如何通过API调用使用JWT身份验证【英文标题】:Angular:HowtouseJWTAuthenticationwithanAPIcall【发布时间】:2018-12-2808:15:07【问题描述】:我正在关注this的文章。作者正在使用fake-backend.ts拦截一个以/api/authenticate结尾的api调用,... 查看详情

如何通过 https 从 localhost 调用 api

】如何通过https从localhost调用api【英文标题】:Howtocallapifromlocalhostviahttps【发布时间】:2018-02-0501:20:32【问题描述】:我目前在一个开发Web应用程序的2人团队中。我正在开发客户端应用程序,而我的合作伙伴在一个单独的项目中... 查看详情

如何使用 Chainlink api 调用通过 api 从 json 返回中检索字符串值

】如何使用Chainlinkapi调用通过api从json返回中检索字符串值【英文标题】:HowdoIuseaChainlinkapicalltoretrieveastringvaluefromjsonreturnebyapi【发布时间】:2021-12-2821:30:21【问题描述】:我正在尝试使用chainlink请求进行api调用,然后使用api调用... 查看详情

如何通过 API 调用从 azure 容器中获取 blob 数据?

】如何通过API调用从azure容器中获取blob数据?【英文标题】:HowtogetblobdatafromazurecontainerinchunksthroughanAPIcall?【发布时间】:2021-08-1610:50:41【问题描述】:我正在尝试通过API调用从azureblob容器中检索数据,它工作正常,但对于20或30... 查看详情

如何通过 API 以编程方式在 Microsoft Store 上创建订阅插件

】如何通过API以编程方式在MicrosoftStore上创建订阅插件【英文标题】:HowtoprogrammaticallycreateaSubscriptionAdd-OnonMicrosoftStoreviaAPI【发布时间】:2021-07-1015:37:57【问题描述】:我需要在MicrosoftStore中为我的UWP产品创建一些“订阅”类型的... 查看详情

如何通过我的 api 调用绕过 CORS 限制? [复制]

】如何通过我的api调用绕过CORS限制?[复制]【英文标题】:HowcanIgetaroundCORSrestrictionswithmyapicalls?[duplicate]【发布时间】:2019-10-2020:53:08【问题描述】:我一直在开发个人堡垒之夜统计网络应用程序。我使用了两个主要的API调用。... 查看详情

如何通过 iOS 中的 API 调用获取 PayPal 刷新令牌

】如何通过iOS中的API调用获取PayPal刷新令牌【英文标题】:HowtogetthePayPalrefreshtokenthroughAPIcalliniOS【发布时间】:2016-09-1519:51:17【问题描述】:我已经使用PayPaliOSSdk成功实现了个人资料共享选项。一旦用户在应用程序中登录到贝宝... 查看详情

五:用java写一个阿里云vpcopenapi调用程序

...是一件显著提升运维效率和网络生产力的事情。产品经理教你写代码系列文章的目标是不懂代码的网络工程师能一步一步的学会用API管理网络。另外通过文章标题大家也可以看出来,产品经理教你写代码肯定是 查看详情

如何通过 Web 浏览器调用在 Kong 中配置的 api?

】如何通过Web浏览器调用在Kong中配置的api?【英文标题】:HowdoiinvokemyapiwhichisconfiguredinKongthroughwebbrowser?【发布时间】:2018-05-2708:56:15【问题描述】:我通过kong..(dummyAPI)创建了一个新的API配置,如下所示。curl-i-XPOST\\--网址http://l... 查看详情

如何通过 AFNetworking API 调用使用 gzip 解压?

】如何通过AFNetworkingAPI调用使用gzip解压?【英文标题】:howtousegzipdecompressionwithAFNetworkingAPIcall?【发布时间】:2014-09-1306:13:39【问题描述】:我在我的项目中使用AFNetworking库。最近我听说了gzip数据压缩,它是由NSURLConnection类中的... 查看详情

IBM Watson Assistant:如何通过对话进行 API 调用

】IBMWatsonAssistant:如何通过对话进行API调用【英文标题】:IBMWatsonAssistant:HowtomakeAPIcallsfromdialog【发布时间】:2019-08-0818:00:49【问题描述】:我们使用Watson功能将IBMWatsonAssistant技能/工作区与Facebook页面集成。我们使用“虚拟助手... 查看详情

我如何通过 API Gateway 调用 AWS Step Functions? [关闭]

】我如何通过APIGateway调用AWSStepFunctions?[关闭]【英文标题】:HowcanicallAWSStepFunctionsbyAPIGateway?[closed]【发布时间】:2017-05-0211:56:26【问题描述】:我想知道如何让APIGateway调用StepFunction并执行它。【问题讨论】:重复:***.com/question... 查看详情

教你开发jquery插件

阅读目录基本方法支持链式调用让插件接收参数面向对象的插件开发关于命名空间关于变量定义及命名压缩的好处工具GitHubServiceHook原文:http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html要说jQuery最成功的地方,我认为是它的可扩展... 查看详情