为实现手机方式内容的语音播放,可借助蓝牙通信在手机与播放装置间搭建梁。
当然若开发板不具备蓝牙通信功能,则可使用蓝牙模块来承担该项工作。
为进行该功能的测试,这里是采用RA2E1开发板进行功能处理,并将生成的播放指令传递给语音合成模块来输出语音信息。
稍感不便的是语音合成模块所接收的中文信息为Unicode编码,而Unicode与国标码间又缺少简单的变换关系,由此影响了快速转换的实现,否则只需在手机上发送中文信息即可在异地播放出语音信息。当然,若在手机上发送Unicode编码还是可以播放中文信息的。
进行测试的电路连接如图1所示,由于RS2E1开发板没有提供USB口来供电,只好从外部来向其提供3.3V工作电压。

图1 器件连接
在软件设计方面,需使用RASC来创建一个KEIL项目工程,并配置开发板的串口以115200bps的波特率来工作。
在生成KEIL项目工程后,需在程序中添加如下的测试程序内容:
uint8_t s[] = {0XFD , 0X00 , 0X02 , 0X01 , 0X00};
uint8_t N=10;
void hal_entry(void)
{
int i=0;
err = R_SCI_UART_Open(&g_uart9_ctrl, &g_uart9_cfg);
assert(FSP_SUCCESS == err);
err = R_SCI_UART_Read(&g_uart9_ctrl, uart_rx_buffer, N);
assert(FSP_SUCCESS == err);
while(1)
{
if(uart_receive_complete_flag)
{
s[2]=s[2]+N;
uart_receive_complete_flag = false;
for ( i= 0 ; i< 5+N; i++)
{
if(i<5)
{
fputch(s[i]);
}
else
{
fputch(uart_rx_buffer[i-5]);
}
}
err = R_SCI_UART_Read(&g_uart9_ctrl, uart_rx_buffer,N);
assert(FSP_SUCCESS == err);
}
}
}经程序的编译和下载,通过串口进行测试的结果如图2所示,即在接收到信息后开发板会把其变换为相应的语音合成指令并加以播放。

图2 串口模拟测试
在连接蓝牙模块进行测试的情况下,器件的连接关系为:
RA --- 蓝牙模块 --- 串口模块 / 语音合成模块
P110 (收) TX
P109 (发) RXD
在上电后,通过手机上的应用小程序可扫描到蓝牙模块所充当的蓝牙设备 “KT6368BA_BLE-2.1”见图3所示。
在完成连接后,其界面如图4所示。

图3 扫描蓝牙设备

图4 完成连接
此时,可按图5所示来发送播放内容,然后可通过串口来查看发送给语音合成模块的指令,见图6所示。

图5 发送播放内容

图6 生成语音合成指令
由此说明功能测试正确,在连接语音合成模块的情况下可以实现语音播放的目标。
当手机以字节方式发送中文信息的Unicode码时间,即可播放出中文信息,其程序内容可以不变,只需变更指令数组内容即可,其内容为:
uint8_t s[] = {0XFD , 0X00 , 0X02 , 0X01 , 0X03};
至此,就实现了以语音合成的方式播放手机内容的功能。
我要赚赏金
