第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

如何使用華為機(jī)器學(xué)習(xí)服務(wù)和Kotlin實(shí)現(xiàn)語(yǔ)音合成

標(biāo)簽:
Android

1. 引言

  你曾遇到过这种情况吗?一本小说太长,要花很长时间阅读,但如果有app能自动为你阅读,就会省时很多。因此,将文本转换成语音的工具应运而生。华为机器学习服务(HUAWEI ML Kit)具备语音合成(Text To Speech, TTS)功能,能让app快速实现从文本到语音的转换。TTS可以将文本转换成人声。这也可以通过默认方法实现,但这些方法不能提供自然或真实的声音。TTS服务全球通用,利用深度神经网络对文本进行处理,从而创造出自然的声音,同时也支持多种音色,以增强人声效果。TTS使用了云服务,字符数限制在500个以内,并使用UTF-8编码。
  目前支持的音色如下:

  • 英文-男声
  • 英文-女声
  • 中文-男声
  • 中文-女声
  • 英文+中文-男声
  • 英文+中文-女声

2. 结果展示

  视频展示了使用该服务后得到的结果。
  视频链接:https://developer.huawei.com/consumer/cn/forum/topicview?fid=18&tid=0201314285827100291

3.集成步骤

  步骤1: 在Android Studio中新建项目。

  步骤2: 在app.gradle文件中添加依赖。
  implementation ‘com.huawei.hms:ml-computer-voice-tts:1.0.4.300’

  步骤3: 在app.gradle文件顶部添加AppGallery Connect插件。
  apply plugin: ‘com.huawei.agconnect’

  步骤4: 在Activity中创建回调。

var callback: MLTtsCallback = object : MLTtsCallback {
    override fun onError(taskId: String, err: MLTtsError) {
  
    }
  
    override fun onWarn(taskId: String, warn: MLTtsWarn) {
  
    }
  
    override fun onRangeStart(taskId: String, start: Int, end: Int) {
  
    }
  
    override fun onEvent(taskId: String, eventName: Int, bundle: Bundle?) {
        if (eventName == MLTtsConstants.EVENT_PLAY_STOP) {
            val isStop = bundle?.getBoolean(MLTtsConstants.EVENT_PLAY_STOP_INTERRUPTED)
        }
    }
}

  详情如下:
  共有4种回调方法:

  • OnError():提示用户发生什么错误,并通过华为分析服务(HUAWEI Analytics Kit)发送分析数据到控制台以进一步验证。
  • OnWarn():如果出现带宽不足之类的警告,回调将在这里出现。
  • OnRangeStart():返回当前播放的片段与文本的映射。
  • OnEvent():当发生新事件时调用,例如,当音频暂停时,您可以在bundle中获得EVENT_PLAY_STOP_INTERRUPTED参数。
    如果MLTtsConstants.EVENT_PLAY_STOP的值是false,则音频播放无误。
    如果MLTtsConstants.EVENT_PLAY_STOP的值是true,则音频会出现中断。

  步骤5: 对象初始化。

mlConfigs = MLTtsConfig()
     .setLanguage(MLTtsConstants.TTS_EN_US)
     .setPerson(MLTtsConstants.TTS_SPEAKER_FEMALE_EN)
     .setSpeed(1.0f)
     .setVolume(1.0f)
 mlTtsEngine = MLTtsEngine(mlConfigs)
 mlTtsEngine.setTtsCallback(callback)

  详情如下:
  有两种方法可用于创建TTS引擎。
  我们通过MLTtsConfig对象使用自定义的TTS引擎:

  • 通过MLTtsConstants.TTS_EN_US将语言设置为英文,也可以通过MLTtsConstants.TTS_ZH_HANS将语言设置为中文。
  • 设置人声。
    英文女声:MLTtsConstantsTTS_SPEAKER_FEMALE_EN
    英文男声:MLTtsConstants.TTS_SPEAKER_MALE_EN
    中文女声:MLTtsConstants.TTS_SPEAKER_FEMALE_ZH
    中文男声:MLTtsConstants.TTS_SPEAKER_MALE_ZH
  • 设置语速,范围:0.2-1.8,1.0表示1倍语速。
  • 设置音量,范围:0.2-1.8,1.0表示1倍音量。
  • 创建MLTtsEngine对象,并提供上述MLTtsConfig对象。
  • 将上述创建的callback对象放入MLTtsEngine。

  步骤6: 在Activity中添加以下方法,当用户单击按钮时调用。

private fun startTtsService() {
   val id = mlTtsEngine.speak(sourceText,MLTtsEngine.QUEUE_APPEND)
 }

  详情如下:
  sourceText为用户输入的文本。

  • 当需要队列系统时,使用MLTtsEngine.QUEUE_APPENDED。当TTS的第一次操作完成,紧接着进行下一次操作。
  • 如果只需处理当前操作,使用MLTtsEngine.QUEUE_FLUSH。
  • 通过onPause(),终止MLTtsEngine。
override fun onPause() {
     super.onPause()
     mlTtsEngine.stop()
 }
  • 通过onDestroy(),释放MLTtsEngine占用的资源。
override fun onDestroy() {
     super.onDestroy()
     mlTtsEngine.shutdown()
 }

4.常见问题

  问:TTS服务只支持在华为设备上使用吗?

  答:是的。

  问:需要上网才能使用TTS服务吗?

  答:是的,使用云服务必须连接互联网。

5.结束语

  我们尚且在研究的初级阶段。华为ML Kit提供的TTS服务适用于以下场景:新闻阅读、有声小说、股票信息播报、语音导航、视频配音。

  希望您喜欢这篇文章,也希望您可以分享使用该服务时的意见或建议。

  你可以在Github下载源码。


原作者:梦阳

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消