了解如何在 Google Cloud Speech 控制台中准备音频和文本数据,以调优自定义 Speech-to-Text 模型。训练数据的质量会影响所创建的模型的效果。您需要编写一个多样化的数据集,其中包含与模型在生产环境中推理期间的响应内容(包括噪声和异常词汇)直接相关的代表性音频和文本上下文。
为了有效训练自定义 Speech-to-Text 模型,您需要:
- 至少 100 个音频小时的训练数据,可以是纯音频,也可以是相应的文本转写作为标准答案。这些数据对于初始训练阶段至关重要,因此模型会学习语音模式和词汇的细微差别。如需了解详情,请参阅创建标准答案数据集
- 一个包含至少 10 个音频小时的验证数据的单独数据集,相应的文字转写内容作为标准答案。
准备工作
确保您已注册 Google Cloud 账号,创建 Google Cloud 项目并启用 Speech-to-Text API:
- 进入 Cloud Storage。
- 如果您还没有存储桶,请创建一个。
创建数据集
如需创建数据集,您需要在所选的 Cloud Storage 存储桶中创建两个子目录。请遵循简单的命名惯例:
- 创建 training_dataset 子目录以存储所有训练文件。
- 创建 validation_dataset 子目录,以存储所有训练文件。
- 按照标准答案注解指南,在目录中上传音频和文本文件。
数据集准则
- 对于训练和验证,支持的文件格式包括
.wav
(对于 LINEAR16 编码的音频文件)和.txt
(对于文本文件)。避免在文件名中包含非 ASCII 字符。 - 同一目录中的音频文件应采用单独的 TXT 文件提供,且每个文件都具有与相应 WAV 文件相同的名称,例如 my_file_1.wav、my_file_1.txt。每个音频文件只能有一个转写文件。
训练数据
- 用于训练的所有文件必须在同一目录下提供,不得包含任何嵌套文件夹。
- 可选:提供音频文件的转写内容(如果可用)。不需要时间戳。
- 确保音频文件的累计音频时长超过 100 小时。如果为否,训练作业将失败。
以下示例展示了将文件上传到训练数据集后目录结构应如何显示:
├── training_dataset │ ├── example_1.wav │ ├── example_1.txt │ ├── example_2.wav │ ├── example_2.txt │ ├── example_3.wav (Note: Audio only instance, without corresponding text) │ └── example_4.wav (Note: Audio only instance, without corresponding text)
验证数据
- 所有用于验证的文件都提供在名为 validation_dataset 的同一目录中,但没有任何嵌套文件夹。
- 每个验证音频的时长不应超过 30 秒。
- 在单独的 TXT 文件中为同一目录中每个音频文件提供标准答案转写内容。
以下示例展示了文件作为验证数据集上传后应如何显示:
├── validation_dataset │ ├── example_1.wav │ ├── example_1.txt │ ├── example_2.wav │ └── example_2.txt
标准答案注解指南
请参阅以下格式设置说明。
数字
基数词和序数词只能转写数字。
- 音频:“A deck of cards has fifty two cards, thirteen ranks of the four suits, diamonds, hearts, and spades”
- 标准答案文本:“A deck of cards has 52 cards, 13 ranks of the four suits, diamonds, hearts, and spades”
货币和单位
应按照其在转写语言区域中通常采用的方式进行转写。缩写所有带数值的单位。 如果可以从上下文中明显判断出某个数字或数字序列是指货币或时间,请将其转录为相应的格式。
日期和时间
以转写语言中使用的日期和时间的通用形式进行转录。尽可能以 hh:mm
格式写入时间。
地址
使用位置、道路和州的全名进行转写,例如,在明确说出时采用缩写。在转写实体和位置时,应使用英文逗号分隔。
专有名称和重音
使用官方拼写和标点符号进行转写。如果某个个人姓名可能有多种拼写,并且上下文无法解决问题,请使用最常见的拼写。
品牌、产品名称和媒体标题
请采用官方格式且最常使用的格式来转写它们。
感叹词
转写笑声或其他非语音发音时,应该最多使用 3 个音节。应完全忽略语音中包含的笑声。示例:
- 音频:“ha ha ha ha ha”
- 标准答案文本:“hahaha”
多位说话者
请勿使用讲话人标签将其分隔开,因为系统通常不支持区分。
后续步骤
请按照以下资源在应用中利用自定义语音模型: