Flutter集成百度语音识别(Android端)实战

简介: Flutter集成百度语音识别(Android端)实战

今天和大家分享一下Flutter中集成百度语音识别Android端的过程,供大家进行参考。

既然是Flutter集成,那首先就要创建一个Flutter项目,这个就不仔细讲了,可以参考Flutter中文的创建项目流程

@[toc]


一、百度语音官网注册应用信息


1.注册百度账号

首先注册登陆百度AI开发平台-语音识别,打开控制台找到并点击”语音技术“一栏微信图片_20220610113830.png微信图片_20220610113845.png

2.创建注册应用信息

填写应用名称(名称随意),类别随意,选择Android并填写Android包名,点击创建应用就创建完成了。微信图片_20220610113913.png

3.查看应用信息

点击第1步中的管理应用,可以看到你创建的所有应用列表,可以看到创建应用的AppID,API Key, Secret Key等信息,这些都需要在项目进行配置的。微信图片_20220610113943.png

4.下载SDK

百度语音识别SDK

二、创建一个项目的Library


1.使用Android Studio打开项目Android文件


2.创建Library, File->New Module->选择Android Library,填写name(asr_plugin)微信图片_20220610114010.png

3.添加语音识别sdk

在asr_plugin中创建一个libs文件夹,复制(解压下载的百度语音识别sdk文件/core/libs/*.jar)到刚创建的libs下

4.添加so文件

复制(解压sdk文件/core/main/jniLibs)复制到asr_plugin/src/main下,删除下面的armeabi,(因为Flutter没有armeabi的so),删除使用不到的库文件,保留如下图中文件即可微信图片_20220610114038.png

5.AndroidManifest.xml配置权限及项目的APPID,API_KEY以及Secret_Key微信图片_20220610114110.png6.在项目Android/app目录下的build.grade文件中添加插件依赖微信图片_20220610114137.png

三.Android实现百度语音的识别功能


1.Library中实现百度识别功能

微信图片_20220610114201.png

2.library的build.gradle中添加flutter依赖

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
apply plugin: 'com.android.library'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
flutter {
    source '../..'
}

3.项目app/build.gradle中添加如下代码,确保app与library中添加flutter.so 不冲突

defaultConfig中添加
ndk{
            abiFilters "arm64-v7a","arm64-v8a","x86_64","x86"
        }
//百度语音集成添加
    packagingOptions {
        // 确保app与asr_plugin都依赖的libflutter.so merge时不冲突@https://github.com/card-io/card.io-Android-SDK/issues/186#issuecomment-427552552
        pickFirst 'lib/x86_64/libflutter.so'
        pickFirst 'lib/x86/libflutter.so'
        pickFirst 'lib/arm64-v8a/libflutter.so'
        pickFirst 'lib/arm64-v8a/libapp.so'
        pickFirst 'lib/armeabi-v7a/libapp.so'
    }

在项目的MainActivity中进行注册微信图片_20220610114305.png

四、Dart端实现语音功能管理


语音识别管理类微信图片_20220610114336.png功能页面使用微信图片_20220610114404.png

可能遇到的问题

1、识别语音,而且报错语音识别错误,-3004,4004

解决:前往百度语音官网控制台,领取一下额度,才可以进行正常测试微信图片_20220610114436.png

Demo

Flutter仿携程APP集成百度语音识别

相关实践学习
一键创建和部署高分电影推荐语音技能
本场景使用天猫精灵技能应用平台提供的技能模板,在2-5分钟内,创建一个好玩的高分电影推荐技能,使用模板后无须代码开发,系统自动配置意图、实体等,新手0基础也可体验创建技能的乐趣。
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
目录
相关文章
|
28天前
|
移动开发 监控 安全
mPaaS常见问题之Android集成dexPatch热修复运行时候无法正常进行热更新如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
34 0
|
3月前
Android4.1.0实战教程---自动阅读小说
Android4.1.0实战教程---自动阅读小说
35 0
|
4月前
|
Android开发
【Android App】蓝牙的设备配对、音频传输、点对点通信的讲解及实战(附源码和演示 超详细)
【Android App】蓝牙的设备配对、音频传输、点对点通信的讲解及实战(附源码和演示 超详细)
84 0
|
26天前
|
缓存 移动开发 Java
构建高效Android应用:内存优化实战指南
在移动开发领域,性能优化是提升用户体验的关键因素之一。特别是对于Android应用而言,由于设备和版本的多样性,内存管理成为开发者面临的一大挑战。本文将深入探讨Android内存优化的策略和技术,包括内存泄漏的诊断与解决、合理的数据结构选择、以及有效的资源释放机制。通过实际案例分析,我们旨在为开发者提供一套实用的内存优化工具和方法,以构建更加流畅和高效的Android应用。
|
2月前
|
算法 Java Android开发
安卓逆向 -- 实战某峰窝APP(静态分析)
安卓逆向 -- 实战某峰窝APP(静态分析)
26 0
|
2月前
|
网络协议 算法 Android开发
安卓逆向 -- 实战某峰窝APP(动态分析)
安卓逆向 -- 实战某峰窝APP(动态分析)
25 4
|
2月前
|
Java 关系型数据库 MySQL
Shiro实战+springboot集成
Shiro实战+springboot集成
16 0
实战分享之springboot+easypoi快速业务集成2
实战分享之springboot+easypoi快速业务集成2
实战分享之springboot+easypoi快速业务集成1
实战分享之springboot+easypoi快速业务集成1
|
4月前
|
Android开发 Kotlin
Android实战演练(kotlin版),词汇记录APP
Android实战演练(kotlin版),词汇记录APP
38 0