本文的目標是: 透過 麥克風 將我們說的話 顯示成文字
這將需要2個套件 "SpeechRecognition" 和 "pyaudio"
關於套件的安裝請參考本文最後面的附錄
下面介紹的內容 主要來自 youtube上的教學影片
#https://www.youtube.com/watch?v=3LLksqP2aXE
不過他教的有提到 python來讀音檔
而我簡單化一點,就沒有寫到這個功能了~
另外 原影片中介紹的是 .py 檔
如果你想要在 jupyter notebook 上開的話
只要打 %load XXXX.py
自動會幫你讀到 jupyter 上
注: XXXX 是你的檔案名稱
那開始介紹一下這個code吧~~
#首先 import 這幾個套件
import speech_recognition
import time
import os
import pyaudio
import wave # 這是讀聲音檔的,可以不需要
# 將聲音轉成文字的fun 只需要這一小段code
def Voice_To_Text():
r = speech_recognition.Recognizer()
with speech_recognition.Microphone() as source:
## 介紹一下 with XXX as XX 這個指令
## XXX 是一個函數或動作 然後我們把他 的output 放在 XX 裡
## with 是在設定一個範圍 讓本來的 source 不會一直進行
## 簡單的應用,可以參考
## https://blog.gtwang.org/programming/python-with-context-manager-tutorial/
print("請開始說話:") # print 一個提示 提醒你可以講話了
r.adjust_for_ambient_noise(source) # 函數調整麥克風的噪音:
audio = r.listen(source)
## with 的功能結束 source 會不見
## 接下來我們只會用到 audio 的結果
try:
Text = r.recognize_google(audio, language="zh-TW")
##將剛說的話轉成 zh-TW 繁體中文 的 字串
## recognize_google 指得是使用 google 的api
## 也就是用google 網站看到的語音辨識啦~~
## 雖然有其他選擇 但人家是大公司哩 當然優先用他的囉
except r.UnknowValueError:
Text = "無法翻譯"
except sr.RequestError as e:
Text = "無法翻譯{0}".format(e)
# 兩個 except 是當語音辨識不出來的時候 防呆用的
return Text
### fun定義結束
##讓我們實際利用看看吧~
Text = Voice_To_Text()
print(Text)
恩........ 這個範例成不成功 光看好像不會知道
請大家自己試試
因為 從這邊直接貼到 jupyter 是沒有辦法執行的
所以code的連結放在這裡
http://ge.tt/3h3Ffqp2
請自行取用,我們下次見~ 88
附錄: 關於安裝~
我們需安裝兩個套件"SpeechRecognition" 和 "pyaudio"
1. pip3 install SpeechRecognition
注意: 你在 anaconda 是找不到這個套件的~ 所以一定要在prompt 或 cmd 下面安裝
2. pip pyaudio
這個就可以直接用 anaconda 的介面安裝了
不過我覺得還是直接手打比較快
留言列表