谷歌语音转文字怎么用(谷歌语音转文字插件)

未标题-1-4 (1).png

引言

一个外企客户手里有一些英文视频,为了更好的服务国内客户,希望把这些英文视频加上中文字幕,以方便国内客户的观看。因为已经大量使用了 Google Cloud 的产品,希望探索和使用 Google Cloud AI 产品来完成为视频增加中文字幕。

该文档同样适用于为中文视频添加英语字幕等一种语言的视频添加其他语种的字幕场景,目前支持100多种语言相互翻译。

目标

利用 Google Cloud AI 等产品为视频增加翻译字幕

工作流程

以英文视频转为中文字幕视频为例:

英文视频–》提前英文音轨–》提取英文文本–》翻译中文文本–》生成中文字幕文件–》合成中文字幕的英语视频

详细流程:

从视频自动提取音轨,自动检测音频采样率和声道数量利用谷歌云 Speech-to-Text API将音频转译成文本,并加入字幕时间戳利用谷歌云 Translation API将文本翻译为指定语言转换文本为字幕格式把字幕硬编码进视频中无服务器方案,使用 Google Cloud Run,免去设置服务器和扩展的麻烦系统架构使用到的 Google Cloud 产品Cloud Speech API — 语音转换成文本Cloud Translation API — 翻译Cloud Run — 无服务计算Pub/Sub — 全球消息队列Cloud Storage — 对象存储IAM — 身份与认证实施步骤

您可以在 Cloud Shell 或您自己的 PC 中使用 gcloud 命令执行以下命令

0.前置请求

您需要启用Speech API、Cloud Run API、Translate API、Pubsub API、Eventarc API,如果您还没有启用的话。

gcloud services enable \\ speech.googleapis.com \\ translate.googleapis.com \\ run.googleapis.com \\ pubsub.googleapis.com \\ eventarc.googleapis.com

确认执行程序所需的IAM服务账号,需要权限至少包括:GCS读写,Speech-to-Text API, Translation API。或使用默认的 compute 服务账号,自带有整个项目的 Edit 权限。

1.下载代码并部署到 Cloud Run 服务

git clone https://github.com/OrganizationBin/trans_video_subscd trans_video_subs/Serverlessgcloud run deploy <CLOUD-RUN-NAME> --source . \\ --concurrency=1 \\ --memory=1024Mi \\ --ingress=internal \\ --timeout=600 \\ --no-allow-unauthenticated \\ --service-account=<[email protected]> \\ --set-env-vars=video_src_language_code=en-US \\ --set-env-vars=translate_src_code=en \\ --set-env-vars=translate_des_code=zh \\ --set-env-vars=merge_sub_to_video=False \\ --set-env-vars=two_step_convert=False

此命令将自动构建容器并部署到 Cloud Run。请记住将 CLOUD-RUN-NAME 和[email protected]替换为您自己的。您可以根据视频大小调整内存和超时。

以下是环境变量说明:

video_src_language:视频语言代码。参考 Speech-to-Text API 语言代码文档translate_src_language:源语言代码。参考 Translate API 语言代码文档translate_des_language :目标语言代码。参考 Translate API 语言代码文档merge_sub_to_video:True 表示自动将 srt 字幕硬编码成 Video,同时输出 srt 字幕文件。false 表示只输出 srt 字幕文件。2.为上传视频创建GCS Bucket,请选择单地域Bucket。

gsutil mb -l us-central1 gs://<MY-BUCKET-NAME>

3.从 GCS Bucket 触发器创建 Eventarc 到 Cloud Run。

注意:部署eventarc trigger时,如果报ERROR类似这样:

[email protected] has no permission to publish messages to pubsub topic

那么你需要去控制台IAM添加使用 pubsub publish 对该特定帐户的权限。

gcloud eventarc triggers create <TRIGGER-NAME> \\ --location=us-central1 \\ --destination-run-service=<CLOUD-RUN-NAME> \\ --destination-run-region=us-central1 \\ --event-filters="type=google.cloud.storage.object.v1.finalized" \\ --event-filters="bucket=<MY-BUCKET-NAME>" \\ --service-account=<[email protected]>

4.上传视频,并验证结果

将视频上传到 Cloud Storage,即您刚刚创建的存储桶 gs://MY-BUCKET-NAME。

几分钟后,您可以从输出存储桶 gs://MY-BUCKET-NAME-out 下载 srt 字幕文件。

或者,如果您在 Cloud Run 环境变量中将 merge_sub_to_video 设置为 True,则可以下载带有编码字幕的视频 mp4。

注意事项这种 Serverless 解决方案可以弹性处理短视频。Cloud Run 蕞多可以运行 60 分钟。但是,如果您的视频处理时间超过 10 分钟,那么 Pub/sub 将在确认截止日期前超时。因此,您需要将这一 Cloud Run 服务的多个步骤分离为多个 Cloud Run 服务,并且不要等待 Cloud Run 代码中的 API 响应。这使得该架构解耦并节省成本。像这样: GCS 触发器 -> CloudRun 1 视频到音频 -> 语音 API -> GCS 触发器 -> CloudRun 2 合并格式 -> 翻译 API -> GCS 触发器 -> CloudRun 3 合并 srt 格式 -> GCS 触发器 -> CloudRun 4 将 srt 编码为视频 -> GCS 蕞终结果蕞大 Cloud Run 内存设置为 8GB,如果您的视频大于此,请选择此解决方案的 Server 分支。所有视频文件直接上传到GCS存储桶,并且没有子目录。本工具暂时不支持子目录,会在后续版本提供。对于文件名有特殊字符的,本工具会自动把GCS上的原文件改名后再开始后续处理,特殊字符修改为下划线 _。特殊字符包括 / \\ : * ? " < > | [] ' @参考资料https://www.bilibili.com/video/BV1Bf4y1w7v3/https://github.com/OrganizationBin/trans_video_subs

海外精品引流脚本–最强海外引流  

官网:www.facebook18.com

唯一TG:https://t.me/Facebook181818

Facebook.png

更多海外引流脚本方案

如果你需要脚本演示、部署咨询或海外获客方案,可以通过下面入口继续查看。

官网首页 | 演示视频 | TG 在线客服 | TG 频道

相关阅读

© 版权声明
广告也精彩

相关文章