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

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

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

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

1.注册百度账号

首先注册登陆百度AI开发平台-语音识别,打开控制台找到并点击”语音技术“一栏 在这里插入图片描述 在这里插入图片描述

2.创建注册应用信息

填写应用名称(名称随意),类别随意,选择Android并填写Android包名,点击创建应用就创建完成了。 在这里插入图片描述

3.查看应用信息

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

4.下载SDK

百度语音识别SDK

二、创建一个项目的Library

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

2.创建Library, File->New Module->选择Android Library,填写name(asr_plugin)

在这里插入图片描述

3.添加语音识别sdk

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

4.添加so文件

复制(解压sdk文件/core/main/jniLibs)复制到asr_plugin/src/main下,删除下面的armeabi,(因为Flutter没有armeabi的so),删除使用不到的库文件,保留如下图中文件即可 在这里插入图片描述

5.AndroidManifest.xml配置权限及项目的APPID,API_KEY以及Secret_Key

在这里插入图片描述

6.在项目Android/app目录下的build.grade文件中添加插件依赖

在这里插入图片描述

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

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

在这里插入图片描述

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

1def localProperties = new Properties() 2def localPropertiesFile = rootProject.file('local.properties') 3if (localPropertiesFile.exists()) { 4 localPropertiesFile.withReader('UTF-8') { reader -> 5 localProperties.load(reader) 6 } 7} 8 9def flutterRoot = localProperties.getProperty('flutter.sdk') 10 11apply plugin: 'com.android.library' 12apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 13 14flutter { 15 source '../..' 16}

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

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

在项目的MainActivity中进行注册

在这里插入图片描述

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

语音识别管理类

在这里插入图片描述

功能页面使用

在这里插入图片描述

可能遇到的问题

1、识别语音,而且报错语音识别错误,-3004,4004 解决:前往百度语音官网控制台,领取一下额度,才可以进行正常测试 在这里插入图片描述

Demo

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

觉得文章不错的,给我点个赞哇,关注一下呗! 技术交流可关注公众号【君伟说】,加我好友一起探讨

点赞
收藏

评论区

加载中...

相关推荐

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

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

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