在寫個聊天機器人吧網誌中,已經完成了五個版本的聊天機器人,這邊則要開發一個能自動將 WAV 中文語音檔辨識成中文文字的程式。
安裝 SpeechRecognition 套件 (此時版本為 3.8.1)
pip install SpeechRecognition
第一版程式
import speech_recognition as sr
recogn = sr.Recognizer()
with sr.WavFile('C:\Temp\Audio.wav') as source:
speech = recogn.record(source)
print('辨識開始...')
text = recogn.recognize_google(speech, language='zh-tw')
print(text)
print('辨識完成')
**********************************************************************************************************************
接著使用 googletrans 套件將中文翻譯成英文
安裝 googletrans 套件 (此時版本為 2.4.0)
pip install googletrans
第二版程式
import speech_recognition as sr
recogn = sr.Recognizer()
with sr.WavFile('C:\Temp\Audio.wav') as source:
speech = recogn.record(source)
print('開始辨識...')
text = recogn.recognize_google(speech, language='zh-tw')
print(text)
print('辨識完成')
from googletrans import Translator
ts = Translator()
print('開始翻譯...')
text = ts.translate(text, dest='en').text
print(text)
print('翻譯完成')
**********************************************************************************************************************
用瀏覽器開啟新井紀子 TED 演講的影片(Can a robot pass a university entrance exam?),網址列顯示「https://www.youtube.com/watch?v=BXcFEhl7ynM」。修改網址列文字,移除「ube」三個字母使網址列成為「https://www.yout.com/watch?v=BXcFEhl7ynM」,按「Enter」鍵開啟下載頁面。
於下載頁面「格式」點選「MP3 (音頻)」,再點擊「記錄 MP3」,即可下載語音檔案「can-a-robot-pass-a-university-entrance-exam-noriko-arai.mp3」。
或是利用用 Python 剪輯影片網誌中的第三版程式來擷取聲音 MP3 檔。由於 SpeechRecognition 模組無法辨識 MP3 格式,所以需先將檔案格式轉換為 WAV 格式。此外語音檔通常很大,辨識時間將會很久,如果將語音檔分割為較短的數段,就可以選擇需要的部分進行處理。
安裝 SpeechRecognition 套件 (此時版本為 3.8.1)
pip install SpeechRecognition
第一版程式
import speech_recognition as sr
recogn = sr.Recognizer()
with sr.WavFile('C:\Temp\Audio.wav') as source:
speech = recogn.record(source)
print('辨識開始...')
text = recogn.recognize_google(speech, language='zh-tw')
print(text)
print('辨識完成')
**********************************************************************************************************************
接著使用 googletrans 套件將中文翻譯成英文
安裝 googletrans 套件 (此時版本為 2.4.0)
pip install googletrans
第二版程式
import speech_recognition as sr
recogn = sr.Recognizer()
with sr.WavFile('C:\Temp\Audio.wav') as source:
speech = recogn.record(source)
print('開始辨識...')
text = recogn.recognize_google(speech, language='zh-tw')
print(text)
print('辨識完成')
from googletrans import Translator
ts = Translator()
print('開始翻譯...')
text = ts.translate(text, dest='en').text
print(text)
print('翻譯完成')
**********************************************************************************************************************
用瀏覽器開啟新井紀子 TED 演講的影片(Can a robot pass a university entrance exam?),網址列顯示「https://www.youtube.com/watch?v=BXcFEhl7ynM」。修改網址列文字,移除「ube」三個字母使網址列成為「https://www.yout.com/watch?v=BXcFEhl7ynM」,按「Enter」鍵開啟下載頁面。
於下載頁面「格式」點選「MP3 (音頻)」,再點擊「記錄 MP3」,即可下載語音檔案「can-a-robot-pass-a-university-entrance-exam-noriko-arai.mp3」。
或是利用用 Python 剪輯影片網誌中的第三版程式來擷取聲音 MP3 檔。由於 SpeechRecognition 模組無法辨識 MP3 格式,所以需先將檔案格式轉換為 WAV 格式。此外語音檔通常很大,辨識時間將會很久,如果將語音檔分割為較短的數段,就可以選擇需要的部分進行處理。
安裝 pydub 套件 (此時版本為 0.23.1)
pip install pydub
第三版程式
import shutil, os
from pydub import AudioSegment
from pydub.utils import make_chunks
os.mkdir('C:\\Temp\\tempdir')
audiofile = AudioSegment.from_file('C:\Temp\Audio.wav', 'wav')
chunklist = make_chunks(audiofile, 60000)
for i, chunk in enumerate(chunklist):
chunk_name = 'C:\\Temp\\tempdir\\chunk{0}.wav'.format(i)
print ("存檔:", chunk_name)
chunk.export(chunk_name, format='wav')
import speech_recognition as sr
recogn = sr.Recognizer()
print('開始辨識...')
file = open('C:\Temp\Speech.txt', 'w')
for i in range(len(chunklist)):
with sr.WavFile('C:\\Temp\\tempdir\\chunk{}.wav'.format(i)) as source:
speech = recogn.record(source)
result = recogn.recognize_google(speech, language='zh-tw')
print('{}. {}'.format(i+1, result))
file.write(result)
file.close()
shutil.rmtree('C:\\Temp\\tempdir')
print('辨識完成')
程式將語音檔以 60 秒為單位切割為數段語音檔後,再進行辨識。由於辨識結果可能有錯誤,必須再以人工進行文字修正。
沒有留言:
張貼留言