Tongue Twister

前言

实不相瞒,小编作为了一个湖南人,时常被说普通话不够标准,不仅N/L不分,有时候还分不出来卷舌音,经常闹笑话,导致小编十分苦恼。 有时看着电视里的主持人流利的口播,和完全标准的绕口令都羡慕不已,常常幻想着自己有一天也能说一口流利的绕口令。恰巧,小编昨日上网的时候被推送了集成了华为HMS ML Kit实时语音服务的小游戏-Tongue Twister, 这款游戏究竟是如何玩转绕口令的,接下来就和小编一起一探究竟吧!

应用场景

Tongue Twister 就是一款集成了华为HMS ML Kit实时语音识别服务的绕口令小游戏,游戏中一共有5个关卡,每一个关卡就是一段绕口令,通过秘诀就是凭借强大的实时语音识别,实时语音识别服务覆盖日常生活及工作中的众多领域,并且深度优化了购物搜索、影视搜索、音乐搜索以及导航等场景中的识别能力,识别准确率高,可轻松检测闯关者的发音,如若发音清晰标准即可过关,

在这里插入图片描述

下面我们一起来看看这个游戏的正确打开方式吧!

这么样,是不是心动了,那就一起来试试自己定制属于你的绕口令大闯关吧!

开发步骤

  1. 请参见云端鉴权信息实用须知,设置您应用的鉴权信息。 中:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/sdk-data-security-0000001050040129-V5#ZH-CN_TOPIC_0000001050750251__section2688102310166 英:https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides-V5/sdk-data-security-0000001050040129-V5#EN-US_TOPIC_0000001050750251__section2688102310166

  2. 用户调用接口创建一个语音识别器。

    MLAsrRecognizer = MLAsrRecognizer.(context);

  3. 创建语音识别结果监听器回调。

    SpeechRecognitionListener MLAsrListener { @Override onStartListening() { }

    1 @Override 2 onStartingOfSpeech() { 3 } 4 5 @Override 6 onVoiceDataReceived([] data, energy, Bundle bundle) { 7 8 } 9 10 @Override 11 onRecognizingResults(Bundle partialResults) { 12 13 } 14 15 @Override 16 onResults(Bundle results) { 17 18 } 19 } 20 21 @Override 22 onError(error, String errorMessage) { 23 24 } 25 26 @Override 27 onState(state, Bundle params) { 28 29 }

    }

  4. 将新建的结果监听器回调与语音识别器绑定

    .setAsrListener(SpeechRecognitionListener());

  5. 配置识别参数,调用启动语音识别

    Intent = Intent(MLAsrConstants.); .putExtra(MLAsrConstants., language) .putExtra(MLAsrConstants., MLAsrConstants.); mSpeechRecognizer.startRecognizing(mSpeechRecognizerIntent);

  6. 识别完成后,释放资源

    (!= ) { .destroy(); = ; } maven地址

    buildscript { repositories { maven { url } } } allprojects { repositories { maven { url } } }

引入SDK

dependencies {implementation implementation implementation }

清单文件

1<... 2 < /> 3 ... 4 </> 5 6 7权限 8 9</> 10 11 12动态权限申请 13 14requestCameraPermission() { 15 String[] permissions = String[]{Manifest.permission.}; 16 (!ActivityCompat.(, 17 Manifest.permission.)) { ActivityCompat.(, 18 permissions, 19 TongueTwisterActivity.); 20 ; 21 } 22 }

总结

除了在游戏当中的应用,实时语音识别服务在使用购物类App搜索商品时,可以将语音描述的商品名称或特征识别为文字从而搜索到目标商品。同样,在使用音乐类App时,可以将语音输入的歌名或歌手识别为文字进而搜索歌曲。另外,司机在驾驶过程中不方便输入文字时,可以将输入的语音转换为文字继而搜索目的地,让行车更加安全。

GitHub Demo Code

欲了解更多详情,请参阅:

华为开发者联盟官网: https://developer.huawei.com/consumer/cn/hms/huawei-mlkit

获取开发指导文档: https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/service-introduction-0000001050040017

参与开发者讨论请到Reddit社区:https://www.reddit.com/r/HuaweiDevelopers/

下载demo和示例代码请到Github:https://github.com/HMS-Core

解决集成问题请到Stack Overflow: https://stackoverflow.com/questions/tagged/huawei-mobile-services?tab=Newest

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

swap空间的增减方法

(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap