亚马逊AWS官方博客

Amazon Transcribe 现在支持自动语言识别功能

2017 年,我们推出了 Amazon Transcribe,这是一项自动语音识别服务,使开发人员可以轻松地为其应用程序添加语音转文本功能。此后,我们还增加了对更多语言的支持,使全球客户能够转录 31 种语言的音频录音,包括实时转录 6 种语言。

Amazon Transcribe 的一个常见使用案例是转录客户呼叫。此功能使公司能够使用自然语言处理技术分析转录的文本,以检测情绪或识别最常见的呼叫原因。如果您在具有多种官方语言的国家/地区运营或跨多个区域运营,则您的音频文件可能包含不同的语言。因此,必须用适当的语言手动标记文件,然后再进行转录。这通常包括建立多语种团队,从而在处理音频文件方面造成额外的成本和延迟。

媒体和娱乐行业通常使用 Amazon Transcribe 将媒体内容转换为可访问且可搜索的文本文件。使用案例包括生成字幕或转录、调整内容等。运营团队还可以使用 Amazon Transcribe 进行质量控制,例如,根据提取文本中存在时间戳检查音频和视频是否同步。然而,有一些问题可能无法轻松解决,例如验证视频中的主要语言是否正确标记,以避免用错误的语言流传输视频。

今天,我非常高兴地宣布,Amazon Transcribe 现在可以自动识别音频录音中的主要语言。此功能将帮助客户摆脱手动标记,从而构建更高效的转录工作流程。除了上述示例外,您现在还可以轻松地使用 Amazon Transcribe 来自动识别和转录语音邮件、会议以及任何形式的录制通信。

介绍自动语言识别
通过时长最短为 30 秒的音频,Amazon Transcribe 可以有效生成所说语言的转录文本,而不会在手动标记上浪费时间和资源。在批量转录模式下,可提供全部 31 种语言的主要语言自动识别。得益于采样技术,语言识别的发生速度比转录本身快得多,只需几秒钟即可。

如果您已经使用 Amazon Transcribe 进行语音识别,则只需通过 StartTranscriptionJob API 启用此功能。在转录作业完成之前,GetTranscriptionJob API 的响应将提供音频录音的主要语言以及在 0 与 1 之间的信心评分。转录文本列出了前五种语言及其各自的信心评分。

当然,如果您希望将 Amazon Transcribe 专门用于自动语言识别,您可以简单地处理 API 响应并忽略转录文本。在这种情况下,您应该坚持 30-45 秒的简短音频录音以最大限度地降低成本。

您还可以通过将语言列表传递到 StartTranscriptionJob API 中来限制 Amazon Transcribe 尝试识别的语言。例如,如果您的公司呼叫中心仅接收英语、西班牙语和法语的呼叫,则将可识别语言限制到此列表中将提高语言识别的准确性。

现在,我将向大家展示使用这个新功能是多么容易!

使用 Amazon Transcribe 检测主要语言
首先,我们来试用一个高质量示例。我将使用 AWS 2019 巴黎峰会的其中一个小组会议的音频轨道。我可以使用 youtube-dl 工具轻松下载该音频轨道。

$ youtube-dl -f bestaudio https://www.youtube.com/watch?v=AFN5jaTurfA
$ mv AWS\ \&\ EarthCube\ _\ Deep\ learning\ démarrer\ avec\ MXNet\ et\ Tensorflow\ en\ 10\ minutes-AFN5jaTurfA.m4a video.m4a

我使用 ffmpeg,将该音频剪辑缩短为 1 分钟。

$ ffmpeg -i video.m4a -ss 00:00:00.00 -t 00:01:00.00 video-1mn.m4a

然后,我将该剪辑上传到 Amazon Simple Storage Service (S3) 存储桶中。

$ aws s3 cp video-1mn.m4a s3://jsimon-transcribe-uswest2/

接下来,我在启用语言识别的情况下,使用 AWS CLI 在此音频剪辑上运行转录作业。

$ awscli transcribe start-transcription-job --transcription-job-name video-test --identify-language --media MediaFileUri=s3://jsimon-transcribe-uswest2/video-1mn.m4a

只等待了几秒,我便可以检查作业状态。我还可以使用 Amazon CloudWatch 事件来通知语言识别已完成。

$ awscli transcribe get-transcription-job --transcription-job-name video-test
{
    "TranscriptionJob": {
        "TranscriptionJobName": "video-test",
        "TranscriptionJobStatus": "IN_PROGRESS",
        "LanguageCode": "fr-FR",
        "MediaSampleRateHertz": 44100,
        "MediaFormat": "mp4",
        "Media": {
        "MediaFileUri": "s3://jsimon-transcribe-uswest2/video-1mn.m4a"
    },
    "Transcript": {},
    "StartTime": 1593704323.312,
"CreationTime": 1593704323.287,

    "Settings": {
        "ChannelIdentification": false,
        "ShowAlternatives": false
    },
    "IdentifyLanguage": true,
    "IdentifiedLanguageScore": 0.915885329246521
    }
}

如输出中突出显示的那样,主要语言在几秒钟被被正确检测出,并获得了 91.59% 的高信心评分。再经过几秒钟后,转录作业完成。运行相同的 CLI 调用,我可以检索至转录的链接,其中还包括音频剪辑的前 5 种语言,按评分递减排序。

"language_identification":[{"score":"0.9159","code":"fr-FR"},{"score":"0.0839","code":"fr-CA"},{"score":"0.0001","code":"en-GB"},{"score":"0.0001","code":"pt-PT"},{"score":"0.0001","code":"de-CH"}]

加上法语和加拿大法语,我们几乎获得了 100% 的评分,因此,毫无疑问,此剪辑是法语的。有些情况下,您可能不会关心这种程度的细节,您将在下一个示例中了解如何限制检测到的语言列表。

限制检测到的语言列表
由于客户通话转录是 Amazon Transcribe 的常见使用案例,下面是一个时长 40 秒的音频剪辑(WAV、8KHz、16 位分辨率),我在其中读了 Amazon Transcribe 页面法语版本中的一段话。正如您所听到的,质量相当糟糕,我还额外增加了背景音乐 (Bach-ground)。

我再一次将剪辑上传到 S3 存储桶中,并使用 AWS CLI 对它进行转录。这一次,我将语言列表限制为法语、西班牙语、德语、美国英语和英国英语。

$ aws s3 cp speech-8k.wav s3://jsimon-transcribe-uswest2/
$ awscli transcribe start-transcription-job --transcription-job-name speech-8k-test --identify-language --media MediaFileUri=s3://jsimon-transcribe-uswest2/speech-8k.wav --language-options fr-FR es-ES de-DE en-US en-GB

几秒钟后,我检查作业的状态。

$ awscli transcribe get-transcription-job --transcription-job-name speech-8k-test
{
    "TranscriptionJob": {
    "TranscriptionJobName": "speech-8k-test",
    "TranscriptionJobStatus": "IN_PROGRESS",
    "LanguageCode": "fr-FR",
    "MediaSampleRateHertz": 8000,
    "MediaFormat": "wav",
    "Media": {
        "MediaFileUri": "s3://jsimon-transcribe-uswest2/speech-8k.wav"
    },
    "Transcript": {},
    "StartTime": 1593705151.446,
"CreationTime": 1593705151.423,

    "Settings": {
        "ChannelIdentification": false,
        "ShowAlternatives": false
    },
    "IdentifyLanguage": true,
    "LanguageOptions": [
        "fr-FR","es-ES","de-DE","en-US","en-GB"
    ],
    "IdentifiedLanguageScore": 0.9995
    }
}

正如输出中所突出显示的那样,尽管音频质量很糟糕,但仍然可以正确检测到主要语言,且信心评分很高。限制语言列表显然是很有帮助的,您应该尽可能地使用它。

开始使用
自动语言识别功能现已在以下区域提供:

  • 美国东部(弗吉尼亚北部)美国东部(俄亥俄)美国西部(加利福尼亚北部)美国西部(俄勒冈)AWS GovCloud(美国西部)
  • 加拿大(中部)
  • 南美洲(圣保罗)
  • 欧洲(爱尔兰)欧洲(伦敦)欧洲(巴黎)欧洲(法兰克福)
  • 中东(巴林)
  • 亚太地区(香港)亚太地区(孟买)亚太地区(东京)亚太地区(首尔)亚太地区(新加坡)亚太地区(悉尼)

除现有的定价外,不收取额外费用。请试一试,并通过您的常用 AWS Support 联系人或者 Amazon TranscribeAWS 论坛向我们发送反馈。

– Julien