谷歌的speech2srt python代码显示错误

问题描述

我正在尝试从音频创建srt文件。实际上,我为此遵循tutorial。但是,当我运行命令master时,它显示以下错误

python3 speech2srt.py --storage_uri gs://subtitlingsc/en.wav

如果有人可以帮助解决这个问题!

speech2srt.py file链接

解决方法

之所以发生这种情况,是因为您提供了参数 config audio 这两个参数都应该是关键字参数。要解决此问题,可以将client.long_running_recognize(config,audio)替换为client.long_running_recognize(config = config,audio = audio)

您可以确认here,函数 long_running_recognize 具有以下定义:

async long_running_recognize(
    request: google.cloud.speech_v1.types.cloud_speech.LongRunningRecognizeRequest = None,*,config: google.cloud.speech_v1.types.cloud_speech.RecognitionConfig = None,audio: google.cloud.speech_v1.types.cloud_speech.RecognitionAudio = None,retry: google.api_core.retry.Retry = <object object>,timeout: float = None,metadata: Sequence[Tuple[str,str]] = ()
    )

Python 中,带有诸如(arg1,arg2,*,arg3,agr4,...)之类的参数的函数定义意味着只有 * 之前的参数可以作为位置参数提供。在这种情况下, * 之后的所有参数都应作为关键字参数提供。

作为一个例子,让我们用我提到的参数创建一个函数:

def function(arg1,arg2,arg3,agr4):
    pass

如果我尝试将此函数称为function(1,2,3,4),则它将失败,因为仅需要两个位置参数。要正确调用它,我应该提供两个位置参数和两个关键字参数,因此正确的调用应该是function(1,arg3 = 3,arg4 = 4)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...