本期内容介绍:Audio 和 TTS
人类是通过声带和空气流动来发声说话,那么模组开发板没有声带,是如何发声说话的呢?本周小编就给大家介绍 QuecPython 的音频功能 :Audio 和 TTS,只需要运行简的 QuecPython 代码,就可以实现音频播放,开发者还可以根据自己的需求定制和扩展这些功能,以满足特定的项目要求,实现没有声带也能说话的本领。那么接下来,小Q带大家一起来简单的实现如何用 QuecPython 播放声音!
一 、硬件准备
首先,要进行基础的硬件准备,以 EC600N 和 EC600U 进行测试,各个型号支持通道不 同,请注意甄别,测试方法基本相同。
(1)对应音频通道
目前模组仅支持三种音频通道: 0 表示听筒, 1 表示耳机, 2 表示喇叭。
(2)硬件连接
音频通道: 0 表示听筒, 1 表示耳机, 2 表示喇叭
① 针对 EC600N_QuecPython_EVB_2.0 和 EC600N_QuecPython_EVB_3.1 ,对应的音频通道设置为听筒(0)的硬件连接图如下:喇叭接到开发板的 SPK- 、SPK+。
②针对 EC600U_QuecPython_EVB_2.0 对应的音频通道设置为听筒(0)的硬件连接图如下:喇叭接到开发板的 SPK- 、SPK+,另外短接 PIN40 引脚。
③ 针对 EC600U_QuecPython_EVB_2.0 对应的音频通道设置为喇叭(2) 的硬件连接图如下:喇叭接到开发板的 J6 的 PIN14 、PIN15 引脚。
② 在原理图找到 PIN40,然后移步到 wiki 上面查找对应的GPIO口即可。
注:
链接:class Pin - 控制 I/O 引脚 - QuecPython (quectel.com)
原理图获取:原理图可私信小Q 咨询官方技术支持获取。
二、Audio 功能
(1)基础概念
Audio 音频播放是指使用音频编解码器将音频文件或音频流转换为模拟信号,通过输 出通道(如听筒、耳机、喇叭等)播放出来的过程。
• 音频播放需要创建一个 Audio 对象,指定输出通道,如aud = audio.Audio(0)表示使用听筒出。
• 音频播放可以使用 aud.play(priority, breakin, filename)方法,指定播放优先级、打断模式和 文件名称,支持 mp3 、amr 和 wav 格式的文件。
• 使用 aud.playStream(format, buf)方法,指定音频流格式和内容,支持 mp3 、amr 和 wav 格 式的音频流播放。
(2) 功能演示
① 把 music.mp3 文件放到模组里 ,支持 mp3 、amr 和 wav 格式的文件。
链接:class Audio - 音频播放 - QuecPython (quectel.com)
三、TTS 功能
(1)基础概念
TTS 是 Text To Speech 的缩写, 即文本转语音,是一种能把文字内容转换为语音输出的技术。TTS技术的原理是,根据输入的文本内容,系统会针对每个文字或音节生成相应的语音单元,并结合音调、语速、语调以及发音规则等参数,最终生成语音输出。这样,用户就能够通过听取语音来获取文字信息。当前 TTS 模块主要包含如下接口:
• 初始化:使用 audio.TTS()创建一个TTS 对象,指定输出通道。
• 播放:使用 TTS 对象的 play()方法,可以将指定的文本转换为语音并播放,可以指定是否打断、优先级、语速、语调等参数。
• 停止:使用 TTS 对象的 stop()方法,可以停止当前正在播放的语音。
• 暂停:使用 TTS 对象的 pause()方法,可以暂停当前正在播放的语音。
• 恢复:使用 TTS 对象的 resume()方法,可以恢复暂停的语音。
• 设置:使用 TTS 对象的 set_volume() 、set_speed()等方法,可以设置音量、语速等参数。
(2) 功能演示
①QPYcom交互界面演示
③ 脚本演示
链接:class TTS - 文本到语音播放 - QuecPython (quectel.com)
附言:
以上就是本次 QuecPython 的音频播放实验介绍,各位小伙伴赶紧来试试吧,如有任何疑问,欢迎各位和小Q进行探讨和交流。