APP下载

基于百度AI平台的语音技术教学应用研究

2021-09-19孙林杨林

中国教育技术装备 2021年15期
关键词:Python语言

孙林 杨林

摘  要 当前多媒体与网络技术在教学中的应用日渐普及,如课前的课件制作,课中的课件展示与教学互动,课后的作业上传、批改与分析反馈等。百度AI平台包含图文声像等多媒体与网络以及人工智能技术的应用接口。基于百度AI平台,用Python语言开发前端程序,可以高效完成教学中的语音处理工作。总结过程与方法,与大家交流分享。

关键词 百度AI平台;Python语言;语音技术;教学课件;校本教学资源库

中图分类号:G434    文献标识码:B

文章编号:1671-489X(2021)15-0117-03

0  前言

在学校教学实践工作中,教师制作了大量的教学课件,经过多年的积累和完善,这些课件的实用性非常高,具有很高的保存和传承价值。但其中部分有声课件的配音受教师个人方言和录制环境的影响,语音质量较差,会严重影响教学中的使用效果。学校在建设校本教学资源库的过程中,经过比较,最终选择基于百度AI平台来优化处理这些有声课件,提高语音质量,增加字幕说明,使原课件变得“高大上”。这项工作受到课件制作者的肯定和欢迎,并且表示积极支持学校建立优质校本教学资源库。

优化处理课件中的语音步骤如下。

第一步,统一转换有声课件的文件格式为MP4,便于学校教学平台的在线教学应用。

第二步,导出课件中的配音并对其做简单处理,比如噪声消除等,完成后导出为16 kHz的PCM格式音频文件。

第三步,借助Python语言开发前端程序,基于百度AI平台对导出的声音进行语音识别并生成文本。由于最初采集音频设备、环境及人的发音问题,从实际转换情况来看,多数有声课件的识别转换效果较差,需要后期人工对发音和识别错误的文本进行校正。

第四步,借助平台和前端程序进行语音合成,把文字转换成语音,先消除原视频中的配音,再导入转换生成的标准配音,最终制作生成清晰标准的普通话配音视频课件。根据需要和人力情况,还可以为其中的精品课件增加与配音同步的字幕说明,这样的课件效果较好,深受师生欢迎。

1  注册百度AI账号,开通语音技术服务

首先在百度AI平台上(https://ai.baidu.com)注册一个账号,原有百度账号可直接使用。登錄完成后返回首页,打开控制台页面,百度智能云平台不仅有大数据、云计算、物联网等服务,还有语音技术、人脸识别、人体分析、文字识别、图像识别等人工智能服务。本文限于篇幅和研究宽度,仅以语音技术应用为例,介绍应用方法和前端程序编写的代码实现。

打开语音技术项,创建一个语音技术的新应用,其中包括语音识别、语音合成等多种应用。完成创建后打开此应用,分别选择语音识别和语音合成服务项,在语音识别的服务列表中找到音频文件转写项,选择API的中文普通话项,点击其后的免费领取额度,音频文件转写的免费额度在个人账户认证后达10小时。再选择语音合成服务项,在API的基础音库和精品音库项后点击免费领取额度,即可使用百度AI平台的语音技术服务。

完成以上注册和应用创建后,百度AI平台将为用户分配一个语音技术应用许可,打开应用列表,即可看到该应用的AppID、API Key、Secret Key。记录这三项数据,在编程代码中需要调用。正常免费注册的用户,其中基础音库和精品音库可分别免费使用5 000次和500次;个人认证后分别可达五万次和2 000次,可满足一般的使用量;如使用量大可另外购买,价格每次不到一分钱。

2  下载安装Python编程软件

Python官网免费下载地址:https://www.python.org/downloads/。根据电脑安装的系统和配置,下载相应版本安装使用。

3  编程实现语音处理

打开Python的IDLE编程环境,新建Python文件。

1)为方便解释代码,每行后加符号#行号及相关内容,仅做注释用,不影响程序运行;

2)限于篇幅,仅提供纯文字组成的文本文件,经过语音合成,生成语音文件的代码。如要写语音识别的前端程序,仅需稍加修改程序中“readtype()”自定义函数代码中的16~23行即可实现。

程序代码如下。

from aip import AipSpeech    #1导入百度AI平台的

Python SDK

from tkinter import *    #2导入实现图形化用户界面的

模块tkinter

import os    #3

import sys    #4

import json    #5

APP_ID=′2355****'    #6百度AI平台的语音技术应

用许可(这是笔者申请的),文中已有说明

API_KEY=′hXH1jHP0XhH6IDpsgItG****′    #7应用

许可信息的后四位

SECRET_KEY=′tVkGhE0rCx5c45YCfukKIALchTGe****′

#8设为隐藏了

client=AipSpeech(APP_ID,API_KEY,SECRET_KEY)

#9

def get_file_content(filePath):    #10自定义函数:读取

包含待转换文字的文件

with open(filePath,′rb′) as fp:    #11

return fp.read()    #12

def readtype(lx):    #13自定义函数:调用百度AI平

台接口,把包含待转换文字的文本

文件转换成MP3格式的音频文件

n=1    #14文本文件名从1.TXT开始

while n<=var.get():    #15直到用户指定的第N个文件

结束,本例中最大数是5

txt=get_file_content(str(n)+′.txt′)    #16

res=client.synthesis(txt,′zh′,1,{′per′:lx})    #17

f1=open(str(n)+′.mp3′,′wb′)    #18

if not isinstance(res,dict):    #19

with open(str(n)+′.mp3′,′wb′) as f1:    #20

f1.write(res)     #21

f1.close()    #22

n=n+1    #23

lb.config(text="·········语音合成转换结束·········")

#24

root=Tk()    #25创建一个窗口

root.geometry(′460x240′)    #26设置窗口大小

root.title('文字转语音生成器')    #27设置窗口标题

lb1=Label(root,text='\n请选择语音类型\n')    #28創建

一个提示标签

lb1.place(relx=0.1,rely=0.1,relwidth=0.8,relheight=0.1)

#29定义标签的坐标位置、宽度和高度

def show(event):    #30自定义函数:实时显示用户选

择的待转换文件数

s='需要转换的文件数是:%d'%(var.get())     #31

lb.config(text=s)    #32

var=DoubleVar()    #33

scl=Scale(root,orient=HORIZONTAL,length=200,from_=1,to=5,label='请选择需要转换的文件个数',tickinterval=1,resolution=1,variable=var)    #34创建选择转换文件数滑块,可

修改to=5,改变最大文件数

scl.bind('',show)    #35调用自定义

函数show,在标签上实时显

示用户选择的待转换文件数

scl.pack()    #36

lb=Label(root,text=′′)    #37

lb.pack()    #38

btn1=Button(root,text='浑厚男生',command=lambda:readtype(5003))    #39创建选择语音转换类型的按钮

btn1.place(relx=0.1,rely=0.6,relwidth=0.2,relheight=0.1)       #40定义按钮的坐标位置、宽度和高度

btn2=Button(root,text='标准女生',command=lambda:readtype(5118))    #41

btn2.place(relx=0.4,rely=0.6,relwidth=0.2,relheight=0.1)

#42

btn3=Button(root,text='标准男生',command=lambda:readtype(106))    #43

btn3.place(relx=0.7,rely=0.6,relwidth=0.2,relheight=0.1)

#44

btn4=Button(root,text='退出',command=lambda:root.des

troy())    #45

btn4.place(relx=0.4,rely=0.8,relwidth=0.2,relheight=0.1)

#46

root.mainloop()    #47事件循环,等待用户操作

4  前端程序代码解释

第1行代码运行的前提是已经安装了百度AI平台提供的API接口驱动,安装方法有两种。

方法一:如果已经安装了pip,执行“pip install baidu-aip”。

方法二:如果已经安装了setuptools,执行“python setup.py install”。

第3~24行,调用百度AI平台接口,把包含待转换文字的文本文件转换成MP3格式的音频文件,文本文件的长度必须小于1 024字节,超过的要分成多个文件。如果需要,可修改本例中文件最大数5。

第39~46行,在图形窗口界面中创建三个语音转换类型按钮,转换类型代码5003、5118、106分别命名为浑厚男生、标准女生、标准男生,其他更多支持类型请参见百度AI平台。

程序代码调试正常运行后,生成界面如图1所示。

5  教学应用成效

5.1  提高了校本有声课件的配音质量,教学质量和效益明显提升

使用以上方法优化配音后的课件,在后期教学应用中,师生反映课件变得“高大上”,特别是学生使用标准清晰的普通话配音课件,自主学习的积极性和学习质量都有了明显提升。

5.2  创新了教师制作有声课件的思路,提升了课件制作水平和质量

前期仅仅是用这个方法优化处理原有课件中的配音,在面向学科教师培训时,有教师提出因为发音、设备、环境等原因,有时候一个课件的配音要录制很多次才能达到满意的效果,能否直接用这个文字转语音的方法配音呢?后期经过不断研究,增加了延时等音频处理后,实现让教师在制作课件配音时直接使用这个文字转语音技术,一次生成标准清晰的普通话配音课件。

6  结语

编程语言选择Python是因為它简单,以上程序实现,加上操作界面设计,仅用47行代码完成。当前Python语言如此流行,首先是因为它简单易学,再就是基于Python语言的人工智能应用越来越多。前几年Python语言课程在大学专门为计算机专业的学生开设,近几年各省基础教育段的信息技术课程教材也逐步开始选用Python语言。学校从2020年开始使用Python语言,教材是由教育科学出版社出版的《信息技术(必修一):数据与计算》,因此推荐大家学习Python语言。如果读者偏好其他语言,可以模仿以上代码,参考百度AI平台的API接口应用说明完成。

近半年来使用以上程序和方法,学校信息中心已经完成一万多个高中学科基于知识点讲解的有声课件优化整理工作。目标是与全校学科教师一起奋斗,再接再厉,争取尽快建立系统的、完善的高中全学科校本教学资源库,全力推进学校智慧教育教学工作。

参考文献

[1]赵佳.基于百度AI平台的人工智能类课程教学实践探索[J].阜阳师范大学学报(自然科学版),2020(4):113-115.

[2]高冬平,项华.巧用免费AI开放平台 开展小学人工智能启蒙教学[J].中小学信息技术教育,2020(9):74-77.

[3]任昕.基于AI开放平台的人工智能教学初探:以情感倾向分析项目为例[J].中国信息技术教育,2019(8):52-55.

猜你喜欢

Python语言
计算思维培养视域下《Python程序设计》课程的教学改革实践
在高中信息技术课中培养学生计算思维的有效方法探讨
基于KNN算法的手写数字识别
Python语言教学中问题解决能力和创新能力的培养实践
Python语言程序设计教学体系建设
面向计算生态的Python语言入门课程教学方案
基于Python语言和支持向量机的字符验证码识别
论Python程序设计语言
基于Python语言的面向对象课程实践教学探讨
基于Android的Python语言英汉维电子词典设计与实现