模块简介

市面上的TTS语音模块相对较少,在之前的文章中介绍了常用的UVN6288TTS语音模块:

但是这个语音模块音质相对较差,说话时较为机械而且也不便宜。

下面介绍一款海凌科的TTS语音模块HLK-V40, 和UVN6288比起来音质较好而且支持远程播报。

Android系统tts通过蓝牙没有声音 蓝牙tts来电语音_stm32

HLK-V40能够实现串口到网络的数据转换,也能实现把文字转换为语音播放出来。

模块封装及引脚如下图:

Android系统tts通过蓝牙没有声音 蓝牙tts来电语音_嵌入式硬件_02

模块供电要求:5V, >150mA

模块空载运行电流:150+/-50mA

比如常用到的管脚如下:

SP1/SP2接喇叭

PB1接WIFI指示灯

RX1/TX1接UART控制

模块使用

HLK-V40有两种模式,分别是透传模式和AT模式。

透传模式和AT模式的切换方式如下:

  1. 通过拉低引脚PB2/ES0(拉低时间在50ms到2S之间)进入AT指令模式,在AT指令模式下模块会将收到的数据当作是AT指令进行处理,发送AT指令可以让模式进入透传模式。

Android系统tts通过蓝牙没有声音 蓝牙tts来电语音_语音识别_03

  1. 通过特殊字符切换工作状态
  1. 在串口中输入“+++”,模块在收到后会返回字符‘a’。
  2. 模块返回字符‘a’后,需要在1秒内向模块发送字符‘a’,模块返回字符串“OK”进入指令模式。

Android系统tts通过蓝牙没有声音 蓝牙tts来电语音_语音识别_04

在AT指令模式下可以查看和修改串口配置at+uart,默认串口波特率为115200bps

Android系统tts通过蓝牙没有声音 蓝牙tts来电语音_stm32_05

设置模块的SSID和密码,默认SSID为HLK-V40_XXXX,密码为12345678

Android系统tts通过蓝牙没有声音 蓝牙tts来电语音_语音识别_06

文字转语音播报命令at+play_text,如下示例:

#define TEST_STRING_DEF "at+play_text=欢迎使用远望创客学堂TTS语音模块\r\n"
UART1_SendString((uint8_t*)TEST_STRING_DEF,strlen((char*)TEST_STRING_DEF));
HAL_GPIO_TogglePin(OnBoardLED_GPIO_Port, OnBoardLED_Pin);              
HAL_Delay(10000);

串口助手操作示例:

Android系统tts通过蓝牙没有声音 蓝牙tts来电语音_嵌入式硬件_07

播放音量设置:at+play_vol

Android系统tts通过蓝牙没有声音 蓝牙tts来电语音_单片机_08

 

HLK-V40 TTS开发板使用

此语音模块为贴片封装不方便使用,为此特做了一个HLK-V40 TTS开发板,如下图所示:

Android系统tts通过蓝牙没有声音 蓝牙tts来电语音_单片机_09

开发板包含电源指示灯,WIFI联网指示灯,电源电路及背部的喇叭,短路帽可以选择使用板载喇叭或者外接喇叭,这个开发板可以当做一个语音模块来使用,非常方便。可以通过手机或者STM32等单片机控制模块播报语音,具体示范可以参考某站视频。