【发布时间】:2019-10-21 19:34:53
【问题描述】:
我有 wav 格式的 6 秒录音 (ar-01.wav)。我想使用亚马逊服务将音频文件转录为文本。为此,我创建了一个名为 test-voip 的存储桶并将音频文件上传到存储桶。当我尝试将语音转换为文本时,6 秒的音频需要 13.12 秒。这是我的代码 sn-p
session = boto3.Session(aws_access_key_id=aws_access_key_id,
aws_secret_access_key=aws_secret_access_key)
transcribe = session.client('transcribe', region_name='us-east-1')
job_name = "audio_text_trail9"
job_uri = "https://test-voip.s3.amazonaws.com/ar-01.wav"
transcribe.start_transcription_job(
TranscriptionJobName=job_name,
Media={'MediaFileUri': job_uri},
MediaFormat='wav',
LanguageCode='en-US',
MediaSampleRateHertz=16000
)
while True:
status = transcribe.get_transcription_job(TranscriptionJobName=job_name)
if status['TranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']:
break
print("converted to text")
myurl = status['TranscriptionJob']['Transcript']['TranscriptFileUri']
print(myurl)
Text_Data = (requests.get(myurl).json())['results']['transcripts'][0]['transcript']
print(Text_data)
这里我的代码运行良好,即使在嘈杂的音频中,准确性也很棒,但是时间消耗太高了。我在哪里做错了,是什么拖了这么多时间来转录?一旦我得到转录的json,提取所需信息的时间可以忽略不计。如何加快转录过程或有其他更好的方法吗?
【问题讨论】:
-
为什么时间对你来说是个问题?如果处理一个 n 秒的剪辑需要超过 n 秒的时间,会不会有问题?
-
AWS 是否保证文件的处理速度?他们可能会在某个地方为您启动一个新实例,这需要几秒钟,或者您的文件必须在队列中等待才能被处理。这就是 API 基于作业而不是同步立即返回 API 的原因。
-
约翰,是的,我需要它更快地用于我的应用程序。
-
你可以尝试上传一个更大的文件,看看处理时间是否线性上升。如果是这样,它只是做了很多处理,它需要那个时间。如果时间没有显着增加(例如,一个 60 秒的音频文件需要 20 秒),这意味着开始工作只是有一定的开销。无论哪种方式,我都希望它能够尽可能快地工作,并且没有秘密
--doubletime开关。 -
在 AWS 服务器上运行我的 python 代码会有什么不同吗?
标签: python amazon-web-services amazon-s3 boto3