集成讯飞语音转化文字

 集成讯飞语音转化文字

1,首先去讯飞开放平台下载sdk,地址http://www.xfyun.cn/doccenter/newer。名字如下图压缩包,解压后如下图结构 .

2,将开发工具包中libs目录下的Msc.jar和armeabi复制到Android工程的libs目录(如果工程无libs目录,请自行创建)中,如下图所示这里要注意使用Android studio的朋友,记得在build.gradle里面填上这句话哦,不然会出错的

3.在工程AndroidManifest.xml文件中添加如下权限

  1. <!--连接网络权限,用于执行云端语音能力 -->  
  2. <uses-permission android:name="android.permission.INTERNET"/>  
  3. <!--获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->  
  4. <uses-permission android:name="android.permission.RECORD_AUDIO"/>  
  5. <!--读取网络信息状态 -->  
  6. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
  7. <!--获取当前wifi状态 -->  
  8. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>  
  9. <!--允许程序改变网络连接状态 -->  
  10. <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>  
  11. <!--读取手机信息权限 -->  
  12. <uses-permission android:name="android.permission.READ_PHONE_STATE"/>  
  13. <!--读取联系人权限,上传联系人需要用到此权限 -->  
  14. <uses-permission android:name="android.permission.READ_CONTACTS"/>  

注:如需在打包或者生成APK的时候进行混淆,请在proguard.cfg中添加如下代码

-keep class com.iflytek.**{*;}  

4.初始化即创建语音配置对象,只有初始化后才可以使用MSC的各项服务。建议将初始化放在程序入口处(如Application、Activity的onCreate方法),初始化代码如下:

  1. // 将“12345678”替换成您申请的APPID,申请地址: http://open.voicecloud.cn
  2. SpeechUtility.createUtility(context, SpeechConstant.APPID +"=12345678"); 

注意:此接口在非主进程调用会返回null对象,如需在非主进程使用语音功能,请使用参数:SpeechConstant.APPID +"=12345678," + SpeechConstant.FORCE_LOGIN +"=true"。

记得在Androidmainfest里面初始化

5. 最后在把下载的包里面的如下图里面的类复制到自己的项目中

这里面还有就是把assets这个文件夹放在main的目录下,到这里讯飞的语音转化文字已经完成了,如果自己想把界面弄的更好看些,只需要在界面上更改就行了

 到这里就写完了,写的可能有点乱,希望朋友多多担待

转载于:https://my.oschina.net/u/2491853/blog/887739

这段代码的优化方案需要结合具体使用场景和数据规模来考虑。以下是几个可能的优化方案: 1. 使用列表推导式替代循环,可以增加代码的可读性和执行效率: ``` seq1 = 0 spareContainerList = [(-1 * container.killedTime, i, container) for i, container in enumerate(containerList) if container.appId == req.appId and container.state == CONTAINER_SPARE] heapq.heapify(spareContainerList) return spareContainerList ``` 2. 如果列表中的元素数量很大,可以考虑使用生成器表达式和堆排序算法来节省内存和提高执行速度: ``` def MinTimeSlot(containerList, req, CONTAINER_SPARE): spareContainerList = ((-1 * container.killedTime, i, container) for i, container in enumerate(containerList) if container.appId == req.appId and container.state == CONTAINER_SPARE) return heapq.nsmallest(len(spareContainerList), spareContainerList) ``` 3. 如果该函数需要频繁调用,可以将已经筛选出来的容器列表缓存起来,避免重复计算: ``` class ContainerCache: def __init__(self, containerList): self.containerDict = {} for container in containerList: if container.appId not in self.containerDict: self.containerDict[container.appId] = [] if container.state == CONTAINER_SPARE: self.containerDict[container.appId].append(container) def get_spare_containers(self, appId): return self.containerDict.get(appId, []) containerCache = ContainerCache(containerList) def MinTimeSlot(containerList, req, CONTAINER_SPARE, containerCache): seq1 = 0 spareContainerList = [] for container in containerCache.get_spare_containers(req.appId): seq1 += 1 heapq.heappush(spareContainerList, (-1 * container.killedTime, seq1, container)) return spareContainerList ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值