2016-11-18 49 views
0

我正在編寫一個python腳本來掃描包含帶有谷歌視覺OCR文本的照片,然後使用Google gTTS說出文本。下面是代碼:Python gTTS不接受變量內的字符串

#BookrBasic 

from os import system 
from time import sleep 
from pygame import mixer 
from gtts import gTTS 
import subprocess 


def tts(speech): 
tts = gTTS(text=speech, lang='en') 
tts.save("/tmp/text.mp3") 
subprocess.Popen(['mpg123', '-q', '/tmp/text.mp3']).wait() 

def ocr(file): 
out = system('python3 ~/bookrbasic/ocr.py <KEY GOES HERE> ' + file) 
return out 

text = ocr("~/bookrbasic/photos/canada4.jpg") 
tts(text) 

這是我收到的錯誤:

Traceback (most recent call last): 
    File "BookrBasic.py", line 20, in <module> 
    tts(text) 
    File "BookrBasic.py", line 11, in tts 
    tts = gTTS(text=speech, lang='en') 
    File "/usr/local/lib/python2.7/dist-packages/gtts/tts.py", line 72, in  __init__ 
    raise Exception('No text to speak') 
Exception: No text to speak 

有誰知道問題是什麼嗎?

在此先感謝。

回答

0

沒關係,我設法通過寫入tmp文件來修復它。

這裏是新的代碼,萬一有人是有一個類似的問題:

#BookrBasic 

import os 
from os import system 
from time import sleep 
from pygame import mixer 
from gtts import gTTS 
import subprocess 


def tts(speech): 
    tts = gTTS(text=speech, lang='en-uk') 
    os.mkfifio('/tmp/fifo') 
    tts.save("/tmp/text.mp3") 
    subprocess.Popen(['mpg123', '-q', '/tmp/text.mp3']).wait() 


def ocr(file): 
    system('python3 ~/bookrbasic/ocr.py <KEY GOES HERE> ' + file + ' > /tmp/text.txt') 
    with open ("/tmp/text.txt", "r") as myfile: 
     out=myfile.read() 
    return out 

text = ocr("~/bookrbasic/photos/canada4.jpg") 
tts(text)