我试图在python 3.4中运行此代码:
from pygsr import Pygsr
speech = Pygsr()
# duration in seconds
speech.record(3)
# select the language
phrase, complete_response = speech.speech_to_text('en_UK')
print(phrase)`
但我收到了错误
File "/usr/local/lib/python3.4/dist-packages/pygsr/__init__.py", line 33, in record
for i in range(0, self.rate / self.chunk * time):
TypeError: 'float' object cannot be interpreted as an integer
为什么有任何想法?除了更改“es_ES”之外,我还没有对代码进行修改。到' en_UK'来自pygsr PyPi网站。
答案 0 :(得分:3)
这是因为pysgr
是用Python 2.7( see source code )编写的,其中除以整数为你提供了一个整数。在你使用的Python 3.4中,除了整数可以返回一个浮点数(见PEP 238 - Changing the Division Operator ),这会导致你的错误,因为range()
需要整数参数。