我在s3
中有一个音频文件。
mediaFileUri = 's3://'+ bucket_name+'/'+prefixKey
transcribe_client = boto3.client('transcribe')
response = transcribe_client.start_transcription_job(
TranscriptionJobName="abc",
IdentifyLanguage=True,
Media={
'MediaFileUri':mediaFileUri
},
)
然后我得到这个错误:
{
"errorMessage": "Parameter validation failed:\nMissing required parameter in input: \"LanguageCode\"\nUnknown parameter in input: \"IdentifyLanguage\", must be one of: TranscriptionJobName, LanguageCode, MediaSampleRateHertz, MediaFormat, Media, OutputBucketName, OutputEncryptionKMSKeyId, Settings, ModelSettings, JobExecutionSettings, ContentRedaction",
"errorType": "ParamValidationError",
"stackTrace": [
" File \"/var/task/app.py\", line 27, in TranscribeSoundToWordHandler\n response = response = transcribe_client.start_transcription_job(\n",
" File \"/var/runtime/botocore/client.py\", line 316, in _api_call\n return self._make_api_call(operation_name, kwargs)\n",
" File \"/var/runtime/botocore/client.py\", line 607, in _make_api_call\n request_dict = self._convert_to_request_dict(\n",
" File \"/var/runtime/botocore/client.py\", line 655, in _convert_to_request_dict\n request_dict = self._serializer.serialize_to_request(\n",
" File \"/var/runtime/botocore/validate.py\", line 297, in serialize_to_request\n raise ParamValidationError(report=report.generate_report())\n"
]
}
如果出现此错误,意味着必须指定languagecode
,并且IdentifyLanguage
是无效参数。
100%确定音频文件存在于S3中。但是如果没有languagecode
,它就不起作用,并且IdentifyLanguage
参数是未知参数
sam local invoke MyHandler -e lambda\TheDirectory\event.json
我看着Aws转录的这些文档:
https://docs.aws.amazon.com/transcranbe/latest/dg/api_starttranscranptionjob.html
boto3
的文档:
我错过了什么?对此有什么想法吗?我该怎么办?
更新:
我一直在网上搜索并询问了几个人,我想我应该先建立一个函数容器,让SAM把boto3打包到容器中。
cdk synth --no-staging > template.yaml
sam build --use-container
sam local invoke MyHandler78A95900 -e lambda\TheDirectory\event.json
[ERROR] ParamValidationError: Parameter validation failed:
Missing required parameter in input: "LanguageCode"
Unknown parameter in input: "IdentifyLanguage", must be one of: TranscriptionJobName, LanguageCode, MediaSampleRateHertz, MediaFormat, Media, OutputBucketName, OutputEncryptionKMSKeyId, Settings, JobExecutionSettings, ContentRedaction
Traceback (most recent call last):
File "/var/task/app.py", line 27, in TranscribeSoundToWordHandler
response = response = transcribe_client.start_transcription_job(
File "/var/runtime/botocore/client.py", line 316, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/var/runtime/botocore/client.py", line 607, in _make_api_call
request_dict = self._convert_to_request_dict(
File "/var/runtime/botocore/client.py", line 655, in _convert_to_request_dict
request_dict = self._serializer.serialize_to_request(
File "/var/runtime/botocore/validate.py", line 297, in serialize_to_request
raise ParamValidationError(report=report.generate_report())
无法start_transription_job
>
不带languagecode
IdentiyLanguage=true
检查您是否正在使用最新的boto3版本。
boto3.__version__
'1.16.5'
我试过了,很管用。
import boto3
transcribe = boto3.client('transcribe')
response = transcribe.start_transcription_job(TranscriptionJobName='Test-20201-27',IdentifyLanguage=True,Media={'MediaFileUri':'s3://BucketName/DemoData/Object.mp4'})
print(response)
{
"TranscriptionJob": {
"TranscriptionJobName": "Test-20201-27",
"TranscriptionJobStatus": "IN_PROGRESS",
"Media": {
"MediaFileUri": "s3://BucketName/DemoData/Object.mp4"
},
"StartTime": "datetime.datetime(2020, 10, 27, 15, 41, 2, 599000, tzinfo=tzlocal())",
"CreationTime": "datetime.datetime(2020, 10, 27, 15, 41, 2, 565000, tzinfo=tzlocal())",
"IdentifyLanguage": "True"
},
"ResponseMetadata": {
"RequestId": "9e4f94a4-20e4-4ca0-9c6e-e21a8934084b",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"content-type": "application/x-amz-json-1.1",
"date": "Tue, 27 Oct 2020 14:41:02 GMT",
"x-amzn-requestid": "9e4f94a4-20e4-4ca0-9c6e-e21a8934084b",
"content-length": "268",
"connection": "keep-alive"
},
"RetryAttempts": 0
}
}
我在我的虚拟盒子Ubuntu中安装了Oracle SQL Developer。 但是在我的根终端中,我的java版本是 bashrc和/etc/profile中的JAVA_HOME都设置为usr/lib/jvm/jdk1.8.0_291(根据本文新下载的JDK) 第一个问题是为什么我设置了相同的JAVA_HOME路径,但是用户帐户中的java-version不是我新安装的JDK。 我已经设置为使用
我正在使用下面的python boto3代码来启动Ec2 当实例处于运行状态时,我可以通过运行此lambda来停止实例。 但当实例处于停止状态并且我运行Lambda时,我会得到下面的消息,它不会显示任何错误。但当我签入控制台时,实例仍然处于停止状态。我无法找出实例为什么没有进入运行阶段。实例状态=80个实例id为i-06ce851edfXXXXXX的已启动实例 下面是使用的IAM角色
我在Unix系统(OEL)上安装了一个Jenkins master。我配置了两个通过SSH启动的Unix从机(也是OEL)。从属程序永远不会启动,主程序的GUI中也不会报告错误(根本没有输出,只是一个旋转的球): 我在文件中看到的唯一警告是: 主服务器上的JDK版本是: 从服务器上的Java版本: 看起来Jenkins没有启动任何SSH连接。 将Jenkins升级到1.607版本后,在尝试启动从机
我使用的是ActiveMQ Artemis 2.18.0。首先,我用SSL配置了安装程序,artemis启动时没有错误,然后我想在没有SSL的情况下测试我的安装程序,我从和中删除了所有与SSL相关的设置,现在当我试图运行artemis时,我得到了以下结果: 不确定重写的是什么Jolokia属性。我是不是忘了做别的事了? : :
错误是: 错误:(50,17)错误:没有为startActivities(Intent)方法Activity找到合适的方法。startActivities(Intent[],Bundle)不适用(实际和正式的参数列表长度不同)方法Activity.startActivities(Intent[])方法上下文twrapper.startactivities(Intent[],Bundle)不适用(实
问题内容: 我尝试在Ubuntu 11.04和Java 6 sun上安装Hadoop。我正在使用hadoop 0.20.203 rc1构建。我在使用Java-6-sun的Ubuntu 11.04上反复遇到问题。当我尝试启动hadoop时,由于“无法访问存储”,datanode无法启动。 我曾尝试从Apache甚至cloudera的0.20分支中升级和降级到几个版本,还尝试再次删除并安装hadoop