IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> WT588F34B语音芯片单曲更换语音功能的实现与应用 -> 正文阅读

[嵌入式]WT588F34B语音芯片单曲更换语音功能的实现与应用

开发背景:

产品需要更换语音内容一直能存在于生产端,而不能够实现产品在使用终端更换语音,从而实现产品的迭代升级。

实现原理:

?

既然是要能够实现单曲声音的更换,那就需要规划一个文件系统去记录声音的信息,单曲更换在实际的情况下存放着不是连续的音频文件,这样就需要一个音频信息的存放区域。

WT588F34B是一款内置了32Mbit Flash的大容量语音芯片,可以通过Flash烧写器去更换语音文件。在唯创知音芯片Flash的操作中,一个扇区是4K,意味着是我们整个单曲更换的最小单位是4K,但是当客户的音频文件都是很小的时候,远远达不到4K,这样大大浪费了我们Flash的空间,空间利用率大大降低,于是提出划分为两个部分,一个是支持单曲更换的音频区域,一个是不支持单曲更换的音频区域,由客户来选择单曲存放的音频数量,这样也就提升了一个空间利用率,可以存放更大、更多的音频文件。为了保障这个扇区的可靠性,唯创知音还增加了一个Word,对这个扇区进行一个校验。

那么要怎样去播放这些离散的音频文件呢?

其实做法也很简单,创建一个扇区,里面记录的便是每一个扇区时那一个音频文件的数据,在播放时,需要到这个扇区中寻找想要播放的地址,找到对应地址再进行一个寻址的计算,找到音频存放的扇区,开始进行播放,当这个扇区播放结束时,进行下一个扇区的地址寻找,这样就能够实现离散扇区的连续播放。

当播放的问题解决了之后,就是一个数据的更换了。

在上面提出了播放的原理后,数据更换的方式比较直白,只需要在记录单曲音频的扇区找到想要更换的地址的对应的扇区,对该扇区的擦除和写入,如果现有的音频数据长度超过原来的,那便在记录单曲音频的扇区寻找一个无音频数据的扇区进行写入、不足原来的数据长度则需要对剩下的数据空间清空,这样就是数据更换的原理。

但是在更换的过程中,遇到一个问题,Flash的写入只能有一变为零,这就导致了无法随意对记录单曲音频的扇区进行修改,必须先将这个扇区进行一个备份一份,4K的一个数据量,也不可能利用芯片的寄存器去存放这些数据,于是有了一个新的想法,在FLASH中创造一个扇区去作为原来数据的一个备份区,在数据更换的时候起到暂存的作用。

那么这个备份区的作用是不是仅仅如此呢?

答案是不止如此的!当数据更换时,如果遇到突发的情况,更换失败了,那样音频数据必然是不完整的,按照原来的播放方式是不能正常播放,于是有了一个大胆的想法,在备份区备份的是不完整的扇区,不对要更换的地址进行保存,然后在更换过程备份区备份好之后,对原先扇区进行一个“破坏”,这样存在的数据校验就不能通过,在原先扇区校验通过不了的情况下,启用备份区,进行一个播放,这样便保证了芯片能够正常工作。

当然客户执行更换的操作时,并没有这么麻烦,当然下面会讲到这个。

芯片的功能和特点:

  1. 16位DSP语音芯片、32Mhz内部振荡;
  2. 工作电压2.4~3.6V;
  3. 16bit的PWM/DAC输出、可直接驱动8R?0.5W喇叭;
  4. 支持6K~32Khz的WAV文件;
  5. 客户可以通过MCU或配套下载器在线更换芯片内部语音内容;
  6. 支持模拟SPI通讯;
  7. 支持最大4通道16K采样率混音;
  8. 支持最高16通道midi播放(8K采样率);
  9. 具有硬件SPI接口、UART接口、IIC、内置比较器等接口。可以为客户定制各类功能。
  10. 芯片主控程序和内置存储数据均可擦除再烧写。

引脚功能图:

?

Pad Name

Pad No.

ATTR.

Description描述

VDD-SPI

1

Power

FLASH 电源脚(2.4V-3.6V)

PC7

2

I/O

接SPI-flash的CLK

PC6

3

I/O

接SPI-flash的DI

PC2

4

I/O

接SPI-flash的CS

PC1

5

I/O

四线SPI的CS

PB2

6

I/O

四线SPI的SO ?(BUSY语音播放忙信号输出脚)

PI0

7

I/O

四线SPI的SLK

PI1

8

I/O

四线SPI的SI

GND

9

Power

地线脚

PWMN

10

Out

PWM 输出脚

PWMP

11

Out

PWM 输出脚

VDD

12

Power

电源正极(2.4V-3.6V)

SPI-DO

13

I/O

SPI-flash的D0

SPI-CS

14

I/O

SPI-flash的CS

SPI-DI

15

I/O

SPI-flash的DI

SPI-CLK

16

I/O

SPI-flash的CLK

SPI通信协议:

SPI是串行通讯协议,也就是说数据是一位一位的传输的。MISO引脚和MOSI引脚上的数据的MSB位必须与SPSCK的第一个边沿同步,在SPI传输过程中,在同步时钟信号周期开始时(上升沿)数据上线,然后在同步时钟信号的下降沿时,SPI的接收方捕捉位信号,在时钟信号的一个周期结束时(上升沿),下一位数据信号上线,再重复上述过程,先发高位,直到一个字节的8位信号传输结束。由此可以实现控制语音播放、停止、循环等。详细说明可见下面介绍。

?

SPI控制模式由芯片CS、SCK和SI进行控制操作,每发一个字节数据前,CS先拉低4ms至20ms,推荐使用5ms,然后再发送CLK,接收数据高位在先,在时钟的下降接收数据。时钟周期介于160us~2ms之间,推荐周期使用200us。发数据时先发高位,再发低位。数据中的指令根据指令表来发送

1)播放命令码:

指令头

参数1

参数2

功能

描述

A0

Adr-H

Adr-L

地址播发

指定地址播放,Adr-H高8bit地址,Adr-L低8bit地址

AA

Ab

\

循环播放

Ab= 00:取消单曲循环

Ab= 01:单曲循环

Ab= 02:播放两次

Ab= 03:播放三次(以此类推)

???可打断AB连码指令;

AB

Adr-H

Adr-L

连码播放

Adr-H,Adr-L高低地址为一组,最多可以同时发20组地址;

可打断AA循环指令;

AE

Cd

\

音量调节

Cd=00:静音

Cd=01:音量1

Cd=3F:音量63(最大音量);

AF

\

\

停止播放

停止播放;

2)更换指令码

指令头

参数1

参数2

功能

描述

E0

Numb-H

Numb-L

单段更换

指定语音段更换,Numb-H高8位数据,Numb-L低8位数据;

EA

55

AA

全部更换

全部更换flash资料

EE

00

00

查询指令

查询主控忙闲状态,在EE后面的2个CLK芯片会回复

回复00或FF:忙

回复01:闲

回复02:空间已满

DF

\

\

更换中每一个包的起始命令

查询主控忙闲状态,在DF后面的2个CLK进行回复上一个包的校验数据(一个包256byte,一定要发送完256byte)

EF

00

00

更换结束命令

查询主控忙闲状态,在DF后面的2个CLK进行回复上一个包的校验数据

3)Flash控制码

指令头

参数1

参数2

功能

描述

FD

\

\

释放Flash

释放Flash

FC

\

\

配置Flash

配置Flash

应用电路:

?

更换协议说明:

?

bin文件制作或T3Z文件制作

制作bin文件:登陆网页上位机网址后,加载要播放的语音文件或使用文字转换音频功能加载语音后制作bin文件。WT588网页制作客户登录网址:WT588f.waytronic.com:8083/user/register。bin文件制作步骤可参考《WT588F网页上位机操作说明2020-8-31》或视频解说,可联系业务员提供。

访问API接口,可加载本地语音或采用文字转语音功能生成语音文件,将语音文件转换为bin文件或T3Z文件(可用于单段语音修改),可用于单段语音或全部语音的远程更换。

接口网址:api.wt588f.waytronic.com:8083/doc.html?plus=1&cache=1,以下是API接口的使用流程:

应用场景

唯创知音的WT588F34B,能够支持大容量的语音存放,并且能过更换语音,适用于需要频繁更改语音播报的产品,能够实现在线更新语音包,增加产品活力。

  1. 公交车到站提醒系统

使用WT588F34芯片去进行到站语音的播报,不仅可以存放更多的一个公交站地点语音,而且在不同的场景下,比如节日祝福、防疫宣传等等,可以通过MCU去进行语音更换,进行一个适应的语音播报。不需要繁琐的将整个设备拆除更新语音。

  1. 打卡设备

现在市面上存在的高端打卡设备往往具有播报打卡人的名字,而中低端设备更多的是使用文字显示,而我们的WT588F34B正好可以在中低端设备上增加语音播报,增加产品亮点,竞争力。录入、修改打卡人,MCU同步对我们WT588F34B芯片的语音更换,达到正常的打卡人播放。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-13 11:53:07  更:2022-05-13 11:53:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 16:02:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码