语音模块设计意见征集-Arduino中文社区 - Powered by Discuz! Archiver

时代海豚 发表于 2016-11-4 11:23

语音模块设计意见征集

我们近期在设计一款用于各种DIY硬件平台的语音模块。软件层面内置语音识别、语音合成、播放音频等功能;
硬件层面集成通用的音频输入输出接口,需要另外接麦克风和小音箱;
模块和上位机通过串口进行交互,上位机可以给模块发送指令,要求语音合成一段文本,播放一个音频文件,停止播放等;
模块可以给上位机反馈识别出了哪一条语音指令,并播放当前指令对应的音频文件或者语音合成对应的文本等;一般开发流程:
1. 使用文本编辑器编辑语法文件
2. 使用配置工具编译语法文件
3. 将编译后的语法资源、音频文件写入到U盘中
4. 将U盘插入到模块上,重启设备,根据版本号刷新固件,载入新的语法文件
5. 按照识别流程测试

一般识别流程:
1. 唤醒(参考识别唤醒模式)
2. 输入语音指令(喊话)
3. 输出控制序号到串口
4. 输出语音响应



功能方面就是上面说的这样,现在遇到一个问题,就是有些配置信息应该以什么方式来确定。最早设计的时候只有一个配置项,就是识别唤醒模式,当时想的一共有4个选项,用4档的拨动开关来搞定。但是随着进一步的设计和需求的增加,发现还有别的配置也要更新,目前想到的配置项如下。




识别唤醒模式(单选):
1.从开机即开始监听麦克风,连续识别;
2.从开机即开始监听麦克风,没有出现指定的唤醒词则不返回结果,出现唤醒词之后给出提示,一定时间之内可以给出其他的识别结果,超时之后回到睡眠状态,等待下一次唤醒;
3.通过串口信号唤醒,唤醒之后一定时间之内可以给出其他的识别结果,超时之后回到睡眠状态,等待下一次唤醒;
4.语音唤醒+信号唤醒,两种方式都可以进入唤醒状态;
唤醒超时时间设置(单选):
1.8000ms
2.15000ms
3.30000ms
识别结果格式(可复选):
1.返回编号
2.返回文本



硬件开关模式的优点,程序写好之后,仍然可以通过硬件来更换配置,缺点是要在模块上专用空间,配置项太多就会很难看,显得很复杂;
烧录模式的优点,一次搞定所有配置,通常开发者通过实验确定了哪个配置更适合自己的产品之后,不会频繁更改,硬件开关就成了摆设,不如干脆内置了,还模块面板一个清静,缺点就是如果要更换配置就必须重新烧录固件,而flash又是有使用寿命的,虽然擦写次数很难用完,但是对强迫症来说毕竟是一种磨损;
配置文件方式,既解决了硬件开关模式配置项太多占用模块面板的问题,又解决了频繁擦写flash的问题,甚至还可以通过串口指令来更新,看起来是个不错的选择,要说缺点嘛,就是要一直插着U盘,理论上如果所有的声音反馈都使用语音合成而不使用录制好的音频文件的话,语音模块是可以脱离U盘来运行的,这样会让模块显得更简洁;
混合模式,就是把用户可能会频繁更改的选项做成硬件开关(比如识别唤醒模式),固定的配置通过烧录或者配置文件方式(比如识别结果格式)。


其实在写这个帖子的过程中,已经给自己找到了理想的方式:P,我觉得配置文件方式算是最合适的吧,就连最后想到的混合模式的优点,用户可能频繁更改的选项,也可以通过串口发送过来指令,再固化到配置文件中,模式的切换方式就更多样化,可以由开发者来设计。


大家对我们设计的模块还有什么想法,欢迎提出来,我们会尽量满足对语音有需求的开发者们。

时代海豚 发表于 2016-11-4 11:25

投票选项的第三项丢字了,还不能改,第三项是“通过U盘配置文件”

Zoologist 发表于 2016-11-4 12:01

我觉得类似串口at 命令之类的是最好的

主要是方便配置,未来升级也容易的

时代海豚 发表于 2016-11-4 13:56

本帖最后由 时代海豚 于 2016-11-4 13:59 编辑

Zoologist 发表于 2016-11-4 12:01
我觉得类似串口at 命令之类的是最好的

主要是方便配置,未来升级也容易的...
你的意思是开发流程里面,编译后的语法资源或者升级固件也通过串口发送?这倒也可以,只不过增加了串口收发文件。但是添加一条语法,不能通过串口发,因为模块自身不能编译语法文件,必须借助PC来编译,编译后的数据再交给语音模块来使用。

另外通过串口传数据必须要有U盘才能把数据固化下来,否则重启之后内存中的数据就都消失了,下一次使用还要重新配置。

Zoologist 发表于 2016-11-4 14:09

时代海豚 发表于 2016-11-4 13:56
你的意思是开发流程里面,编译后的语法资源或者升级固件也通过串口发送?这倒也可以,只不过增加了串口收 ...

你们的模块预期的零售价格是多少啊

时代海豚 发表于 2016-11-4 14:47

Zoologist 发表于 2016-11-4 14:09
你们的模块预期的零售价格是多少啊

大约两三百元吧,我只是开发人员,并不能决定最终价格

Zoologist 发表于 2016-11-4 15:12

时代海豚 发表于 2016-11-4 14:47
大约两三百元吧,我只是开发人员,并不能决定最终价格

如果你们还用 usb配置的话,这个价格是不可能降下来的啊

另外,如果用usb 那么兼容性可能会挺大的问题

时代海豚 发表于 2016-11-4 15:32

Zoologist 发表于 2016-11-4 15:12
如果你们还用 usb配置的话,这个价格是不可能降下来的啊

另外,如果用usb 那么兼容性可能会挺大的问题 ...

大神有什么更好的办法吗?要存音频文件、配置信息就一定要有存储,我们这边的同事建议不要频繁刷ROM

Zoologist 发表于 2016-11-4 16:44

时代海豚 发表于 2016-11-4 15:32
大神有什么更好的办法吗?要存音频文件、配置信息就一定要有存储,我们这边的同事建议不要频繁刷ROM ...

要不你们就用 sd 呗

成本上会低一些,一方面是卡槽便宜,一方面是客户自己会选购

时代海豚 发表于 2016-11-5 16:18

Zoologist 发表于 2016-11-4 16:44
要不你们就用 sd 呗

成本上会低一些,一方面是卡槽便宜,一方面是客户自己会选购


感谢您的建议!
页: [1] 2
查看完整版本: 语音模块设计意见征集