Android App使用Edge大声朗读功能

参考文档

https://docs.azure.cn/zh-cn/cognitive-services/speech-service/speech-synthesis-markup?tabs=csharp 

流程

  1. 建立Websocket 连接,发送请求,bing服务进行语音合成
    (1). 请求id、请求时间戳、发音角色、语音风格、待合成文本内容、音频流格式、语言类型
    参数文档:https://docs.azure.cn/zh-cn/cognitive-services/speech-service/speech-synthesis-markup?tabs=csharp
Request request = new Request.Builder()
       .url(Constants.EDGE_URL)
       .header("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6")
       .header("User-Agent", Constants.EDGE_UA)
       .addHeader("Origin", Constants.EDGE_ORIGIN)
       .build();

(2). 构造请求头,请求地址
非公开地址

EDGE_URL=
"https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/edge/v1?TrustedClientToken=6A5AA1D4EAFF4E9FB37E23D68491D6F4"

请求UA

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.55

来源

chrome-extension://jdiccldimpdaibmpdkjnbmckianbfold
  1. 接收返回合成得数据流数据
  2. 解码,利用本地TTS引擎播放

开源示例

Android 端

https://github.com/ag2s20150909/TTS.git

在这里插入图片描述
这个App软件将微软edge中的大声朗读功能提取出来,可选择人物和情绪等参数作为语音引擎朗读
当前无成本利用Edge服务,如果用微软azure实现是要按字数收费的。
实现效果和Edge完全相同
在这里插入图片描述

在这里插入图片描述

Windows 端开源示例

该软件是个pc端软件。也是利用了大声朗读功能。输入文字后可以按照设定的声音进行朗读,同时会生成朗读的音频文件
开源代码:

https://gitee.com/LuckyHookin/edge-TTS-record

实现效果
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android app 使用scheme可以让其他应用程序或者网页链接打开你的应用程序,并且可以携带参数,实现应用程序之间的跳转和交互。以下是Android app 使用scheme的步骤: 1. 在AndroidManifest.xml文件中注册scheme。例如,你可以在<activity>标签中添加一个<intent-filter>标签,并且在<intent-filter>标签中添加一个<data>标签,如下所示: ```xml <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="myapp" android:host="openactivity" /> </intent-filter> </activity> ``` 2. 在应用程序中处理scheme。在你的MainActivity中,你可以通过以下代码来处理scheme: ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = getIntent(); String action = intent.getAction(); Uri data = intent.getData(); if (data != null) { String host = data.getHost(); if (host.equals("openactivity")) { //处理scheme参数,打开指定的Activity } } } ``` 3. 在其他应用程序或者网页中使用scheme来打开你的应用程序。例如,你可以在浏览器中输入“myapp://openactivity”来打开你的应用程序并且跳转到指定的Activity。 注意事项: 1. 必须在<intent-filter>标签中添加<category android:name="android.intent.category.BROWSABLE" />,否则无法在浏览器中打开应用程序。 2. scheme参数区分大小写。 3. 如果你的应用程序中有多个Activity需要处理scheme,需要在<intent-filter>标签中分别添加<data>标签,每个<data>标签的scheme和host必须不同。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值