前面章节 flutter插件开发中已经介绍了基础的语音合成插件的开发基础。语音技术已经成为ai智能不可或缺的基础能力。就想语音合成和语音识别双枪能力都封装到一个插件中去。本以为会顺利的。结果走过了无数个坑。主要我是android技术栈出来的 在编写ios端的flutter 插件过程中曲折。记录一下 为同志们避免一些问题。

语音合成:android 采用baidu sdk 。 ios 采用腾讯sdk
语音识别:android采用baidu sdk。ios 采用阿里云 sdk
ios端集成过程中出现很多问题。

技术选型坑:

1。语音合成需要循环播放功能。但是测试发现阿里云 语音合成只有单个合成成功后的回调 如果在里面继续播放可以实现。但是退出页面后 竟然离奇的等了一会又自动播放了。应该是正常播放结束和stop结束都会走导致的。后来咨询了阿里云 也没有解决。
2 。语音合成 最开始iOS端也想采用baidu sdk。 但是集成后发现
[TRACE][MySynchronousConnection.mm:173][Connection Delegate] Will send request!!
[TRACE][MySynchronousConnection.mm:203][Connection Delegate] Did send body data
[TRACE][MySynchronousConnection.mm:185][Connection Delegate] Did receive response
[TRACE][MySynchronousConnection.mm:216][Connection Delegate] Did finish
[ERROR][bds_HttpResponse.cpp:33][ASRResponse::receive_new_data] data is NULL or len is 0
[TRACE][BDSAccessToken.cpp:267]Access token response:
**
同样的代码 单独一个新工程可以运行 但是我放到flutter插件工程中 获取token 就无法返回内容。最后官方说demo可以 基本是我集成的问题 ~~ 后选择了阿里云的。 然后阿里云的又没有很好的resume和循环控制 一步步走向了腾讯~~~~

3.
aliyun 语音合成只是提供简单的合成播放和取消 没有暂停和resume

4 语音识别 ios端继承后 也出现在单独的插件工程中运行可以 然后插件集成到项目中发现sdk 很多请求的类
image.png
打印调试都是nil的问题 如果调试是nil可以通过设置build opttion level为none 可我这个nslog输出也是null
问了很多ios同学 后来在官方说能又的可能是依赖framework可能又问题。依赖找到了 方式有问题?我就一点点尝试
终于啊。
link 看了是有的
image.png

copy files添加了后就可以了
image.png

集成配置: