Android添加百度语音合成API使用(亲测踩坑)

今天要使我的app说话,因此要使用到语音合成,安卓自带的语音合成技术好像并不支持中文,因此采用国内的api,其中有百度,科大讯飞,文章是采用了百度的api,亲测踩坑之后已经可用。

1、注册开发者账号,百度开发者平台http://ai.baidu.com/tech/speech/tts,然后点击免费试用,里面可以有创建应用。

 

2、填写包名要写安卓项目的包名,注册之后会有AppID、API Key、Secret Key,这些要进行相应替换。

 

包名看这儿:

3、申请好了就进入SDK下载:

4、下载好了解压出来有一个demo文件,可以直接演示,这里直接使用源文件加入我们的安卓项目中,首先将百度的jar包导入,路径在app/libs,关于导jar包可以参考我另一篇文档https://blog.csdn.net/jyfbug/article/details/88421221。导入后如下:

5、接下来将app/src/main里面的assets和jniLibs复制到我们项目的文件夹下,将app/src/main/com.baidu.tts.sample下的control、util、listener文件夹和MainHandlerConstant.java复制到我们项目对应文件夹下,复制后我的项目结构如下所示:

6、这里有一个大坑就是在control、listener、util中的import的包都是原来的包,所以我们要手动进去改成我们的包的路径,这里以一个做演示

改成自己的项目路径:

7、建立工具类SpeakVoiceUtil.java(在原来的MiniActivity.java中改变),此后可直接调用,需要注意的也是路径问题(改成自己项目路径࿰

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
实现上传视频并且利用百度语音识别API给视频添加字幕,需要完成以下几个步骤: 1. 在 Android Studio 中创建一个上传视频的功能,可以使用第三方库,例如 retrofit 或者 volley,实现上传视频到服务器。 2. 调用百度语音识别 API,将上传的视频进行语音识别,得到视频中的语音内容。 3. 将语音内容转化为字幕格式,例如 SRT 格式。 4. 将字幕文件与上传的视频进行合并,生成新的视频文件。 下面是大致的代码实现步骤: 1. 上传视频到服务器 ``` // 创建 Retrofit 实例 Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://your.server.url/") .build(); // 创建 API 接口 VideoUploadApi api = retrofit.create(VideoUploadApi.class); // 创建 FileRequestBody,用于上传视频文件 FileRequestBody fileRequestBody = new FileRequestBody(videoFile); // 调用 API 接口上传视频 Call<UploadResult> call = api.uploadVideo(fileRequestBody); call.enqueue(new Callback<UploadResult>() { @Override public void onResponse(Call<UploadResult> call, Response<UploadResult> response) { // 上传成功 UploadResult result = response.body(); // 处理上传结果 } @Override public void onFailure(Call<UploadResult> call, Throwable t) { // 上传失败 // 处理上传失败的情况 } }); ``` 2. 调用百度语音识别 API ``` // 创建百度语音识别 API 实例 BaiduSpeechApi api = new BaiduSpeechApi(appId, appKey, secretKey); // 调用语音识别 API,获取语音内容 String speechContent = api.recognizeSpeech(videoFile); ``` 3. 将语音内容转化为字幕格式 ``` // 将语音内容转化为 SRT 格式字幕 String srtSubtitle = SrtSubtitleConverter.convertToSrt(speechContent); ``` 4. 将字幕文件与上传的视频进行合并 ``` // 创建 FFmpeg 实例 FFmpeg ffmpeg = FFmpeg.getInstance(context); // 设置 FFmpeg 命令行 String command = String.format("ffmpeg -i %s -vf subtitles=%s %s", videoFile.getAbsolutePath(), subtitleFile.getAbsolutePath(), outputVideoFile.getAbsolutePath()); // 执行 FFmpeg 命令行 ffmpeg.execute(command, new ExecuteBinaryResponseHandler() { @Override public void onSuccess(String message) { // 合并成功 } @Override public void onFailure(String message) { // 合并失败 } }); ``` 以上是大致的实现步骤,具体实现细节还需要根据具体情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值