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 mSpeechRecognizer = MLAsrRecognizer.createAsrRecognizer(context);




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


/**

 * Use the callback to implement the MLAsrListener API and methods in the API.

 */

protected class SpeechRecognitionListener implements MLAsrListener {


@Override


public void onStartListening() {


// The recorder starts to receive speech.

    }


@Override


public void onStartingOfSpeech() {


// The user starts to speak, that is, the speech recognizer detects that the user starts to speak.

    }


@Override


public void onVoiceDataReceived(byte[] data, float energy, Bundle bundle) {


// Return the original PCM stream and audio power to the user.

    }


@Override


public void onRecognizingResults(Bundle partialResults) {


// Receive the recognized text from MLAsrRecognizer.

    }


@Override


public void onResults(Bundle results) {


// Text data of ASR.

        }

    }


@Override


public void onError(int error, String errorMessage) {


// If you don't add this, there will be no response after you cut the network

    }


@Override


public void onState(int state, Bundle params) {


// Notify the app status change.

    }

}




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


mSpeechRecognizer.setAsrListener(new SpeechRecognitionListener());




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


// Set parameters and start the audio device.

Intent mSpeechRecognizerIntent = new Intent(MLAsrConstants.ACTION_HMS_ASR_SPEECH);

mSpeechRecognizerIntent

        // Set the language that can be recognized to English. If this parameter is not set,

        // English is recognized by default. Example: "zh-CN": Chinese;"en-US": English;"fr-FR": French;"es-ES": Spanish;"de-DE": German;"it-IT": Italian.

        .putExtra(MLAsrConstants.LANGUAGE, language)


// Set to return the recognition result along with the speech. If you ignore the setting, this mode is used by default. Options are as follows:

        // MLAsrConstants.FEATURE_WORDFLUX: Recognizes and returns texts through onRecognizingResults.

        // MLAsrConstants.FEATURE_ALLINONE: After the recognition is complete, texts are returned through onResults.

        .putExtra(MLAsrConstants.FEATURE, MLAsrConstants.FEATURE_WORDFLUX);

mSpeechRecognizer.startRecognizing(mSpeechRecognizerIntent);




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


if (mSpeechRecognizer != null) {


mSpeechRecognizer.destroy();


mSpeechRecognizer = null;

}




maven地址

buildscript {

    repositories {

        maven { url

'https://developer.huawei.com/repo/' }

    }

}

allprojects {

    repositories {

        maven { url

'https://developer.huawei.com/repo/' }

    }

}




引入SDK

dependencies {

    // Automatic speech recognition Long voice SDK.

    implementation 'com.huawei.hms:ml-computer-voice-realtimetranscription:2.0.3.300'

    // Automatic speech recognition SDK.

    implementation 'com.huawei.hms:ml-computer-voice-asr:2.0.3.300'

    // Automatic speech recognition plugin.

    implementation 'com.huawei.hms:ml-computer-voice-asr-plugin:2.0.3.300'

}




清单文件

<manifest

    ...

    <

meta-data


android:name="com.huawei.hms.ml.DEPENDENCY"


android:value="ocr/>

    ...

</

manifest>


权限

<uses-permission android:name="android.permission.RECORD_AUDIO" />


动态权限申请

private void requestCameraPermission() {


final String[] permissions = new String[]{Manifest.permission.RECORD_AUDIO};


if (!ActivityCompat.shouldShowRequestPermissionRationale(this,

            Manifest.permission.

RECORD_AUDIO)) { ActivityCompat.requestPermissions(this,

                permissions,

                TongueTwisterActivity.

AUDIO_CODE);


return;

    }

}

总结

除了在游戏当中的应用,实时语音识别服务在使用购物类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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容