![](/img/trans.png)
[英]How to use google cloud vision with Google App Engine Python?
[英]How to import google cloud speech recognition in Google App Engine (python)
我想在我的 Google App Engine python 應用程序上使用 google.cloud 庫。 自從我在本地安裝了這個庫以來,我所有的測試都在我的本地工作。 我原以為 GAE 默認支持它,但它不受支持。
這是我得到的錯誤:
from google.cloud import speech
ImportError: No module named cloud
我查看了在https://cloud.google.com/appengine/docs/standard/python/tools/using-libraries-python-27添加 3rd 方庫
按照說明操作后,我又遇到了另一個錯誤。
(/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py:263)
Traceback (most recent call last):
File "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject
obj = __import__(path[0])
File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/main.py", line 18, in <module>
from google.cloud import speech
File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/lib/google/cloud/speech/__init__.py", line 22, in <module>
from google.cloud.speech.client import Client
File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/lib/google/cloud/speech/client.py", line 25, in <module>
from google.cloud.speech._gax import GAPICSpeechAPI
File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/lib/google/cloud/speech/_gax.py", line 17, in <module>
from google.cloud.gapic.speech.v1.speech_client import SpeechClient
File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/lib/google/cloud/gapic/speech/v1/speech_client.py", line 31, in <module>
from google.gapic.longrunning import operations_client
File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/lib/google/gapic/longrunning/operations_client.py", line 45, in <module>
from google.gax import api_callable
File "/base/data/home/apps/s~goooogle-translate/20180126t023051.407206565499030997/lib/google/gax/__init__.py", line 36, in <module>
import multiprocessing as mp
File "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_dist/lib/python2.7/multiprocessing/__init__.py", line 65, in <module>
from multiprocessing.util import SUBDEBUG, SUBWARNING
File "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_dist/lib/python2.7/multiprocessing/util.py", line 41, in <module>
from subprocess import _args_from_interpreter_flags
ImportError: cannot import name _args_from_interpreter_flags
我很難理解這一點。 如果您以前這樣做過,請告訴我如何在 GAE 中設置 google.cloud。
正如在另一篇關於在 App Engine Standard 中使用客戶端庫的Stack Overflow 帖子中已經回答的那樣,GAE Standard 不支持 Google 客戶端庫,因此您可以使用App Engine Flexible ,一個Compute Engine 實例或使用REST API (這也有一個適用於 App Engine 標准的 Python 庫)。
如果您特別需要使用google.cloud
庫,則必須使用 App Engine Flexible 而不是 Standard,但如果您更願意使用 Standard 環境,下面我將分享使用 Cloud 的示例 App Engine Standard 應用程序的代碼語音 API 通過Google API Python 客戶端庫。 該庫不是 GAE 標准的內置庫,因此您必須將其作為第三方庫進行供應。 為此,您必須在本地應用程序的目錄中創建lib
文件夾,以及我在下面共享的requirements.txt
文件,然后使用命令pip install -t lib/ -r requirements.txt
安裝此庫。
運行此示例 GAE 應用程序所需的文件:
要求.txt
google-api-python-client
appengine_config.py
from google.appengine.ext import vendor
# Add any libraries install in the "lib" folder.
vendor.add('lib')
應用程序.yaml
runtime: python27
api_version: 1
threadsafe: True
handlers:
- url: /.*
script: main.app
主文件
import webapp2
from apiclient.discovery import build
from oauth2client.client import GoogleCredentials
class MainPage(webapp2.RequestHandler):
# Presentation page
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.write('This is a sample App Engine Standard application working with Cloud Speech API! :)\n\nGo to /speechAPI to transcribe your audio file (you will need to upload it to one of your Cloud Storage buckets)!')
class Recognize(webapp2.RequestHandler):
# Working with Python API Client Library (NOT NEW CLIENT LIBRARIES)
def get(self):
# Add credentials
credentials = GoogleCredentials.get_application_default()
service = build('speech', 'v1', credentials=credentials)
# Methods available in: https://developers.google.com/resources/api-libraries/documentation/speech/v1/python/latest/index.html
collection = service.speech()
# Build the data structure JSON-like
data = {}
data['audio'] = {}
data['audio']['uri'] = 'gs://<BUCKET>/<FOLDER>/<FILE>'
data['config'] = {}
data['config']['encoding'] = '<ENCODING>'
data['config']['languageCode'] = '<LANGUAGE_CODE>'
data['config']['sampleRateHertz'] = <SAMPLE_RATE>
# Build the request and execute it
request = collection.recognize(body=data)
res = request.execute()
# Webapp2 Response
self.response.headers['Content-Type'] = 'text/plain'
self.response.write(res)
app = webapp2.WSGIApplication([
('/', MainPage),
('/speechAPI', Recognize),
], debug=True)
此應用程序也可在本地開發服務器中運行,因此您可以在將其部署到 App Engine 之前使用命令dev_appserver.py app.yaml
對其進行測試。
試試這個: sudo pip install --upgrade google-cloud-speech
或者:
我正在使用另一個圖書館,
這個方法對你有幫助嗎?
import speech_recognition as sp
import time
print("Say something!")
while True:
rec = sp.Recognizer()
with sp.Microphone() as mic:
audio = rec.listen(mic)
try:
print(rec.recognize_google(audio))
except sp.UnknownValueError:
print("I cannot understand what you said")
time.sleep(0.5)
print("Say again")
except sp.RequestError as e:
print("Error".format(e))
word = rec.recognize_google(audio)
if word == 'goodbye':
break
安裝:
sudo pip install SpeechRecognition
sudo pip install pyaudio
如果發現錯誤:
sudo apt-get install python-pyaudio
sudo apt-get install libjack-jackd2-dev portaudio19-dev
然后再說一遍:
sudo pip install pyaudio
如果您發現錯誤,請嘗試以下操作:
sudo pip install --upgrade pyaudio
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.