?

基于百度AI平臺的語音技術教學應用研究

2021-09-19 02:36孫林楊林
中國教育技術裝備 2021年15期
關鍵詞:Python語言

孫林 楊林

摘 ?要 當前多媒體與網絡技術在教學中的應用日漸普及,如課前的課件制作,課中的課件展示與教學互動,課后的作業上傳、批改與分析反饋等。百度AI平臺包含圖文聲像等多媒體與網絡以及人工智能技術的應用接口?;诎俣華I平臺,用Python語言開發前端程序,可以高效完成教學中的語音處理工作??偨Y過程與方法,與大家交流分享。

關鍵詞 百度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語言英漢維電子詞典設計與實現
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合