本文的目標是: 透過 麥克風 將我們說的話 顯示成文字
這將需要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 的介面安裝了
不過我覺得還是直接手打比較快

 

arrow
arrow
    全站熱搜

    Markjong001 發表在 痞客邦 留言(1) 人氣()