You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Laravel实现适配AWS UI的Transcribe音频识别功能

Laravel 实现对齐AWS官方UI功能的Transcribe音频识别方案

我之前花了很长时间检索AWS Transcribe音频识别的各类实现方案,始终没找到和AWS当前官方控制台UI提供的功能完全匹配的可参考实现,索性基于Laravel框架自主完成了整套对应功能的开发,现在把实现方案整理出来,给同样在找对应方案的开发者省点折腾的时间。

前置依赖配置

  • 先在Laravel项目中安装AWS PHP SDK依赖:
    composer require aws/aws-sdk-php-laravel
  • 到AWS IAM控制台给当前使用的访问密钥配置AmazonTranscribeFullAccess权限,同时给对应S3存储桶开放读写权限——AWS Transcribe的批量识别任务默认需要从S3读取源音频,识别结果也会默认输出到指定S3桶
  • 在项目.env文件中补充必要配置项:AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_DEFAULT_REGION、AWS_TRANSCRIBE_S3_BUCKET

核心功能实现(1:1对齐官方UI能力)

  • 识别任务提交:支持官方UI覆盖的所有音频格式(mp3、wav、flac、m4a等),可配置自动语言检测、指定识别语言、说话人分离、自定义词汇表、自定义语言模型等所有控制台可见选项,核心提交代码参考:
// 初始化Transcribe服务客户端
$transcribeClient = app('aws')->createClient('transcribe');

$taskParam = [
    'TranscriptionJobName' => 'transcribe_job_'.uniqid(),
    'MediaFormat' => $audioFile->getClientOriginalExtension(),
    'Media' => [
        'MediaFileUri' => 's3://'.env('AWS_TRANSCRIBE_S3_BUCKET').'/'.$s3StoredAudioPath
    ],
    'OutputBucketName' => env('AWS_TRANSCRIBE_S3_BUCKET'),
    // 自动语言检测开关和手动指定语言二选一
    'IdentifyLanguage' => $request->input('auto_detect_lang', false),
    'LanguageCode' => $request->input('auto_detect_lang') ? null : $request->input('lang_code'),
    // 对齐官方UI的高级配置
    'Settings' => [
        'ShowSpeakerLabels' => $request->input('enable_speaker_split', false),
        'MaxSpeakerLabels' => $request->input('max_speaker_num', 2),
        'VocabularyName' => $request->input('custom_vocab_name'),
        'ShowAlternatives' => $request->input('show_alt_result', false)
    ]
];

$transcribeClient->startTranscriptionJob($taskParam);
  • 任务状态同步:和官方UI的状态展示逻辑一致,覆盖排队中、处理中、识别完成、识别失败四种状态,建议搭配Laravel自带队列做定时状态轮询,不要用前端高频轮询拉取接口,容易触发AWS接口限流
  • 识别结果解析:识别完成后AWS会自动把结构化json结果存到你指定的S3桶里,直接读取解析这个json文件就能拿到和官方UI展示完全一致的带时间戳、说话人标签、标点的识别内容,不需要额外做格式转换
  • 附加能力适配:官方UI提供的内容安全过滤、自动标点、批量字幕生成等功能,只需要在提交任务时按API文档补充对应参数即可,不需要做额外的二次开发

注意事项

网上能搜到的大部分AWS Transcribe Laravel实现都是服务刚上线时的旧版本封装,不支持现在官方控制台的说话人分离、自动语言检测等新特性,不要直接套用旧封装,对照最新版官方API传参就能1:1还原所有控制台功能
时长超过2小时的音频不要用实时识别接口,和官方控制台一样走异步批量任务接口,识别准确率、处理速度和控制台发起的任务完全一致

内容的提问来源于stack exchange,提问作者King Eke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 13:36:24