audio --- 提供音频播放录音的相关功能

该模块提供音频录音播放功能,使用P8和P9引脚作为音频解码输出。

函数

基础音频函数

播放

audio.player_init()

音频播放初始化,为音频解码开辟缓存

audio.play(url)

本地或网络音频播放,目前只支持mp3格式音频。

可以播放文件系统的MP3音频,或者网络的MP3音频资源。播放本地mp3音频由于受micropython文件系统限制和RAM大小限制,当文件大于1M基本很难下载下去。所以对音频文件的大小有所限制,应尽可能的小。 当播放网络MP3音频,须先连接网络,URL必须是完整地址,如"http://wiki.labplus.cn/images/4/4e/Music_test.mp3" 。返回解码状态,当为0,说明可接受音频解码指令;当为1,说明当前正处解码状态,不能响应。

  • url (str): 音频文件路径,类型为字符串。可以是本地路径地址,也可以是网络上的URL地址。
播放MP3音频
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import audio                                    # 导入audio
from mpython import wifi                        # 导入wifi

mywifi=wifi()                                   # 实例wifi类
mywifi.connectWiFi('ssid','password')           # 连接 WiFi 网络

audio.player_init()                                   # 播放初始化
audio.play('music.mp3')                                      # 本地音频解码                   
audio.play("http://wiki.labplus.cn/images/4/4e/Music_test.mp3")          # 播放网络音频url
audio.player_deinit()                            # 播放结束,释放资源
audio.set_volume(vol)

设置音频音量

  • vol : 音量设置,范围0~100
audio.stop()

音频播放停止

audio.pause()

音频播放暂停

audio.resume()

音频播放恢复,用于暂停后的重新播放

audio.player_status()

用于获取系统是否处于音频播放状态,返回1,说明正处于播放中,返回0,说明播放结束,处于空闲。

audio.player_deinit()

音频播放结束后,释放缓存

录音

audio.recorder_init()

录音初始化

audio.record(file_name, record_time = 5)

录制音频,并以 wav 格式存储。

  • file_name - wav文件存储路径
  • record_time - 录音时长,默认5秒。录音时长受文件系统空间限制,最大时长依实际情况而定。
audio.recorder_deinit()

录音结束后释放资源

示例-录音:

import audio
from mpython import *

audio.recorder_init()
rgb[0] = (255, 0, 0)  # 用LED指示录音开始结束
rgb.write()
audio.record('test.wav',5)
rgb[0] = (0, 0, 0)
rgb.write()
audio.recorder_deinit()

语音合成(TTS)

基于讯飞TTS语音合成API的文字转语音功能,将文字信息转化为声音信息,给掌控板配上“嘴巴”。其合成音在音色、自然度等方面的表现均接近甚至超过了人声。目前应用于掌控拓展板。

audio.xunfei_tts_config(api_key, app_id, voice_name="aisxping")
讯飞tts配置,使用前须要用 audio.player_init() 播放初始化。 由于该功能依赖讯飞API,在使用前需要先将掌控板连接至互联网,并设置RTC时钟至准确时间。
讯飞文字转语音功能,使用该功能前需要在讯飞开发平台 https://www.xfyun.cn/ 注册账号,步骤如下:

1. 注册账号
2. 在产品中,选择“在线语音合成”服务。
3. 在IP白名单中添加网络的公网IP。
  • api_key (str): 讯飞应用的APIKey
  • app_id (str): 讯飞应用的APPID
  • voice_name (str): 发音人,默认"aisxping";可选有"xiaoyan","aisjiuxu","aisjinger","aisbabyxu"
audio.xunfei_tts(text)

文字转语音

  • text (str): 转换的文本,支持中英文。
TTS文字转语音示例
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from mpython import *                                       # 导入mpython模块
import audio                                                # 导入audio模块
import ntptime                                              # 导入授时模块

my_wifi=wifi()                                              # 实例wifi
my_wifi.connectWiFi('','')                                  # 连接 WiFi 网络

APPID = ""                                                  # 讯飞应用ID
API_KEY = ""                                                # 讯飞应用的api key

while True:                                                 # 授时,并校准RTC
    try:
        ntptime.settime()
    except OSError :
        pass
    else:
        break


# 沁园春·长沙 诗词
poem =  "独立寒秋,湘江北去,橘子洲头。  \
        看万山红遍,层林尽染;漫江碧透,百舸争流。\
        鹰击长空,鱼翔浅底,万类霜天竞自由。\
        怅寥廓,问苍茫大地,谁主沉浮?\
        携来百侣曾游。忆往昔峥嵘岁月稠。\
        恰同学少年,风华正茂;书生意气,挥斥方遒。\
        指点江山,激扬文字,粪土当年万户侯。\
        曾记否,到中流击水,浪遏飞舟?" 


audio.player_init()                                   # 播放初始化

audio.xunfei_tts_config(API_KEY ,APPID)               # 讯飞配置
audio.xunfei_tts(poem)                                # TTS转换s