孫林 楊林
摘 ?要 當(dāng)前多媒體與網(wǎng)絡(luò)技術(shù)在教學(xué)中的應(yīng)用日漸普及,如課前的課件制作,課中的課件展示與教學(xué)互動,課后的作業(yè)上傳、批改與分析反饋等。百度AI平臺包含圖文聲像等多媒體與網(wǎng)絡(luò)以及人工智能技術(shù)的應(yīng)用接口?;诎俣華I平臺,用Python語言開發(fā)前端程序,可以高效完成教學(xué)中的語音處理工作??偨Y(jié)過程與方法,與大家交流分享。
關(guān)鍵詞 百度AI平臺;Python語言;語音技術(shù);教學(xué)課件;校本教學(xué)資源庫
中圖分類號:G434 ? ?文獻標(biāo)識碼:B
文章編號:1671-489X(2021)15-0117-03
0 ?前言
在學(xué)校教學(xué)實踐工作中,教師制作了大量的教學(xué)課件,經(jīng)過多年的積累和完善,這些課件的實用性非常高,具有很高的保存和傳承價值。但其中部分有聲課件的配音受教師個人方言和錄制環(huán)境的影響,語音質(zhì)量較差,會嚴重影響教學(xué)中的使用效果。學(xué)校在建設(shè)校本教學(xué)資源庫的過程中,經(jīng)過比較,最終選擇基于百度AI平臺來優(yōu)化處理這些有聲課件,提高語音質(zhì)量,增加字幕說明,使原課件變得“高大上”。這項工作受到課件制作者的肯定和歡迎,并且表示積極支持學(xué)校建立優(yōu)質(zhì)校本教學(xué)資源庫。
優(yōu)化處理課件中的語音步驟如下。
第一步,統(tǒng)一轉(zhuǎn)換有聲課件的文件格式為MP4,便于學(xué)校教學(xué)平臺的在線教學(xué)應(yīng)用。
第二步,導(dǎo)出課件中的配音并對其做簡單處理,比如噪聲消除等,完成后導(dǎo)出為16 kHz的PCM格式音頻文件。
第三步,借助Python語言開發(fā)前端程序,基于百度AI平臺對導(dǎo)出的聲音進行語音識別并生成文本。由于最初采集音頻設(shè)備、環(huán)境及人的發(fā)音問題,從實際轉(zhuǎn)換情況來看,多數(shù)有聲課件的識別轉(zhuǎn)換效果較差,需要后期人工對發(fā)音和識別錯誤的文本進行校正。
第四步,借助平臺和前端程序進行語音合成,把文字轉(zhuǎn)換成語音,先消除原視頻中的配音,再導(dǎo)入轉(zhuǎn)換生成的標(biāo)準配音,最終制作生成清晰標(biāo)準的普通話配音視頻課件。根據(jù)需要和人力情況,還可以為其中的精品課件增加與配音同步的字幕說明,這樣的課件效果較好,深受師生歡迎。
1 ?注冊百度AI賬號,開通語音技術(shù)服務(wù)
首先在百度AI平臺上(https://ai.baidu.com)注冊一個賬號,原有百度賬號可直接使用。登錄完成后返回首頁,打開控制臺頁面,百度智能云平臺不僅有大數(shù)據(jù)、云計算、物聯(lián)網(wǎng)等服務(wù),還有語音技術(shù)、人臉識別、人體分析、文字識別、圖像識別等人工智能服務(wù)。本文限于篇幅和研究寬度,僅以語音技術(shù)應(yīng)用為例,介紹應(yīng)用方法和前端程序編寫的代碼實現(xiàn)。
打開語音技術(shù)項,創(chuàng)建一個語音技術(shù)的新應(yīng)用,其中包括語音識別、語音合成等多種應(yīng)用。完成創(chuàng)建后打開此應(yīng)用,分別選擇語音識別和語音合成服務(wù)項,在語音識別的服務(wù)列表中找到音頻文件轉(zhuǎn)寫項,選擇API的中文普通話項,點擊其后的免費領(lǐng)取額度,音頻文件轉(zhuǎn)寫的免費額度在個人賬戶認證后達10小時。再選擇語音合成服務(wù)項,在API的基礎(chǔ)音庫和精品音庫項后點擊免費領(lǐng)取額度,即可使用百度AI平臺的語音技術(shù)服務(wù)。
完成以上注冊和應(yīng)用創(chuàng)建后,百度AI平臺將為用戶分配一個語音技術(shù)應(yīng)用許可,打開應(yīng)用列表,即可看到該應(yīng)用的AppID、API Key、Secret Key。記錄這三項數(shù)據(jù),在編程代碼中需要調(diào)用。正常免費注冊的用戶,其中基礎(chǔ)音庫和精品音庫可分別免費使用5 000次和500次;個人認證后分別可達五萬次和2 000次,可滿足一般的使用量;如使用量大可另外購買,價格每次不到一分錢。
2 ?下載安裝Python編程軟件
Python官網(wǎng)免費下載地址:https://www.python.org/downloads/。根據(jù)電腦安裝的系統(tǒng)和配置,下載相應(yīng)版本安裝使用。
3 ?編程實現(xiàn)語音處理
打開Python的IDLE編程環(huán)境,新建Python文件。
1)為方便解釋代碼,每行后加符號#行號及相關(guān)內(nèi)容,僅做注釋用,不影響程序運行;
2)限于篇幅,僅提供純文字組成的文本文件,經(jīng)過語音合成,生成語音文件的代碼。如要寫語音識別的前端程序,僅需稍加修改程序中“readtype()”自定義函數(shù)代碼中的16~23行即可實現(xiàn)。
程序代碼如下。
from aip import AipSpeech ? ?#1導(dǎo)入百度AI平臺的
Python SDK
from tkinter import * ? ?#2導(dǎo)入實現(xiàn)圖形化用戶界面的
模塊tkinter
import os ? ?#3
import sys ? ?#4
import json ? ?#5
APP_ID=′2355****' ? ?#6百度AI平臺的語音技術(shù)應(yīng)
用許可(這是筆者申請的),文中已有說明
API_KEY=′hXH1jHP0XhH6IDpsgItG****′ ? ?#7應(yīng)用
許可信息的后四位
SECRET_KEY=′tVkGhE0rCx5c45YCfukKIALchTGe****′
#8設(shè)為隱藏了
client=AipSpeech(APP_ID,API_KEY,SECRET_KEY)
#9
def get_file_content(filePath): ? ?#10自定義函數(shù):讀取
包含待轉(zhuǎn)換文字的文件
with open(filePath,′rb′) as fp: ? ?#11
return fp.read() ? ?#12
def readtype(lx): ? ?#13自定義函數(shù):調(diào)用百度AI平
臺接口,把包含待轉(zhuǎn)換文字的文本
文件轉(zhuǎn)換成MP3格式的音頻文件
n=1 ? ?#14文本文件名從1.TXT開始
while n<=var.get(): ? ?#15直到用戶指定的第N個文件
結(jié)束,本例中最大數(shù)是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="·········語音合成轉(zhuǎn)換結(jié)束·········")
#24
root=Tk() ? ?#25創(chuàng)建一個窗口
root.geometry(′460x240′) ? ?#26設(shè)置窗口大小
root.title('文字轉(zhuǎn)語音生成器') ? ?#27設(shè)置窗口標(biāo)題
lb1=Label(root,text='\n請選擇語音類型\n') ? ?#28創(chuàng)建
一個提示標(biāo)簽
lb1.place(relx=0.1,rely=0.1,relwidth=0.8,relheight=0.1)
#29定義標(biāo)簽的坐標(biāo)位置、寬度和高度
def show(event): ? ?#30自定義函數(shù):實時顯示用戶選
擇的待轉(zhuǎn)換文件數(shù)
s='需要轉(zhuǎn)換的文件數(shù)是:%d'%(var.get()) ? ? #31
lb.config(text=s) ? ?#32
var=DoubleVar() ? ?#33
scl=Scale(root,orient=HORIZONTAL,length=200,from_=1,to=5,label='請選擇需要轉(zhuǎn)換的文件個數(shù)',tickinterval=1,resolution=1,variable=var) ? ?#34創(chuàng)建選擇轉(zhuǎn)換文件數(shù)滑塊,可
修改to=5,改變最大文件數(shù)
scl.bind('
函數(shù)show,在標(biāo)簽上實時顯
示用戶選擇的待轉(zhuǎn)換文件數(shù)
scl.pack() ? ?#36
lb=Label(root,text=′′) ? ?#37
lb.pack() ? ?#38
btn1=Button(root,text='渾厚男生',command=lambda:readtype(5003)) ? ?#39創(chuàng)建選擇語音轉(zhuǎn)換類型的按鈕
btn1.place(relx=0.1,rely=0.6,relwidth=0.2,relheight=0.1) ? ? ? #40定義按鈕的坐標(biāo)位置、寬度和高度
btn2=Button(root,text='標(biāo)準女生',command=lambda:readtype(5118)) ? ?#41
btn2.place(relx=0.4,rely=0.6,relwidth=0.2,relheight=0.1)
#42
btn3=Button(root,text='標(biāo)準男生',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事件循環(huán),等待用戶操作
4 ?前端程序代碼解釋
第1行代碼運行的前提是已經(jīng)安裝了百度AI平臺提供的API接口驅(qū)動,安裝方法有兩種。
方法一:如果已經(jīng)安裝了pip,執(zhí)行“pip install baidu-aip”。
方法二:如果已經(jīng)安裝了setuptools,執(zhí)行“python setup.py install”。
第3~24行,調(diào)用百度AI平臺接口,把包含待轉(zhuǎn)換文字的文本文件轉(zhuǎn)換成MP3格式的音頻文件,文本文件的長度必須小于1 024字節(jié),超過的要分成多個文件。如果需要,可修改本例中文件最大數(shù)5。
第39~46行,在圖形窗口界面中創(chuàng)建三個語音轉(zhuǎn)換類型按鈕,轉(zhuǎn)換類型代碼5003、5118、106分別命名為渾厚男生、標(biāo)準女生、標(biāo)準男生,其他更多支持類型請參見百度AI平臺。
程序代碼調(diào)試正常運行后,生成界面如圖1所示。
5 ?教學(xué)應(yīng)用成效
5.1 ?提高了校本有聲課件的配音質(zhì)量,教學(xué)質(zhì)量和效益明顯提升
使用以上方法優(yōu)化配音后的課件,在后期教學(xué)應(yīng)用中,師生反映課件變得“高大上”,特別是學(xué)生使用標(biāo)準清晰的普通話配音課件,自主學(xué)習(xí)的積極性和學(xué)習(xí)質(zhì)量都有了明顯提升。
5.2 ?創(chuàng)新了教師制作有聲課件的思路,提升了課件制作水平和質(zhì)量
前期僅僅是用這個方法優(yōu)化處理原有課件中的配音,在面向?qū)W科教師培訓(xùn)時,有教師提出因為發(fā)音、設(shè)備、環(huán)境等原因,有時候一個課件的配音要錄制很多次才能達到滿意的效果,能否直接用這個文字轉(zhuǎn)語音的方法配音呢?后期經(jīng)過不斷研究,增加了延時等音頻處理后,實現(xiàn)讓教師在制作課件配音時直接使用這個文字轉(zhuǎn)語音技術(shù),一次生成標(biāo)準清晰的普通話配音課件。
6 ?結(jié)語
編程語言選擇Python是因為它簡單,以上程序?qū)崿F(xiàn),加上操作界面設(shè)計,僅用47行代碼完成。當(dāng)前Python語言如此流行,首先是因為它簡單易學(xué),再就是基于Python語言的人工智能應(yīng)用越來越多。前幾年P(guān)ython語言課程在大學(xué)專門為計算機專業(yè)的學(xué)生開設(shè),近幾年各省基礎(chǔ)教育段的信息技術(shù)課程教材也逐步開始選用Python語言。學(xué)校從2020年開始使用Python語言,教材是由教育科學(xué)出版社出版的《信息技術(shù)(必修一):數(shù)據(jù)與計算》,因此推薦大家學(xué)習(xí)Python語言。如果讀者偏好其他語言,可以模仿以上代碼,參考百度AI平臺的API接口應(yīng)用說明完成。
近半年來使用以上程序和方法,學(xué)校信息中心已經(jīng)完成一萬多個高中學(xué)科基于知識點講解的有聲課件優(yōu)化整理工作。目標(biāo)是與全校學(xué)科教師一起奮斗,再接再厲,爭取盡快建立系統(tǒng)的、完善的高中全學(xué)科校本教學(xué)資源庫,全力推進學(xué)校智慧教育教學(xué)工作。
參考文獻
[1]趙佳.基于百度AI平臺的人工智能類課程教學(xué)實踐探索[J].阜陽師范大學(xué)學(xué)報(自然科學(xué)版),2020(4):113-115.
[2]高冬平,項華.巧用免費AI開放平臺 開展小學(xué)人工智能啟蒙教學(xué)[J].中小學(xué)信息技術(shù)教育,2020(9):74-77.
[3]任昕.基于AI開放平臺的人工智能教學(xué)初探:以情感傾向分析項目為例[J].中國信息技術(shù)教育,2019(8):52-55.