使用 Node.js 和 AssemblyAI 自动处理音频文件中的 PII 信息

realtime news  Jun 13, 2024 21:33  UTC 13:33

1 Min Read

在数据隐私时代,从音频和视频文件中删除个人身份信息 (PII) 是许多应用程序的关键任务。AssemblyAI 最近发布的一篇教程概述了如何使用 Node.js 和 AssemblyAI API 自动执行此过程。

了解 PII 及其重要性

PII 包括任何可用于识别个人的数据,例如姓名、电话号码和电子邮件地址。处理此类信息受 HIPAA、GDPR 和 CCPA 等法规的管控。在各种应用程序中去除 PII 是至关重要的,例如记录医生与患者之间的电话交谈。

设置开发环境

首先,确保安装了 Node.js 18 或更高版本。创建一个新的项目文件夹,导航到其中并初始化一个 Node.js 项目:

mkdir pii-redaction
cd pii-redaction
npm init -y

通过添加 "type": "module" 修改 package.json 文件以使用 ES 模块语法。接下来,安装 AssemblyAI JavaScript SDK:

npm install --save assemblyai

您需要一个 AssemblyAI API 密钥,可以从 AssemblyAI 的 仪表板 上获得。将此密钥设置为系统上的环境变量:

# Mac/Linux:
export ASSEMBLYAI_API_KEY=<YOUR_KEY>

# Windows:
set ASSEMBLYAI_API_KEY=<YOUR_KEY>

通过 PII 处理功能转录音频

设置好环境后,您可以开始转录音频文件。创建一个名为 index.js 的文件,并添加以下代码:

import { AssemblyAI } from 'assemblyai';

const client = new AssemblyAI({ apiKey: process.env.ASSEMBLYAI_API_KEY });

const transcript = await client.transcripts.transcribe({
  audio: "https://storage.googleapis.com/aai-web-samples/architecture-call.mp3",
  redact_pii: true,
  redact_pii_policies: [
    "person_name",
    "phone_number",
  ],
  redact_pii_sub: "hash",
});

if (transcript.status === "error") {
  throw new Error(transcript.error);
}

console.log(transcript.text);

此脚本在转录音频文件的同时处理了指定的 PII 类别,如姓名和电话号码,并将其替换为哈希值。

获取处理后的音频

要获取处理后的音频,请修改代码以包含音频处理设置:

import { AssemblyAI } from 'assemblyai';

const client = new AssemblyAI({ apiKey: process.env.ASSEMBLYAI_API_KEY });

const transcript = await client.transcripts.transcribe({
  audio: "https://storage.googleapis.com/aai-web-samples/architecture-call.mp3",
  redact_pii: true,
  redact_pii_policies: [
    "person_name",
    "phone_number",
  ],
  redact_pii_sub: "hash",
  redact_pii_audio: true,
  redact_pii_audio_quality: "mp3"
});

if (transcript.status === "error") {
  throw new Error(transcript.error);
}

console.log(transcript.text);

此配置确保处理后的音频以 MP3 格式提供。可以使用以下代码下载处理后的音频文件:

import { writeFile } from "fs/promises";

const { redacted_audio_url } = await client.transcripts.redactions(transcript.id);

const redactedFileResponse = await fetch(redacted_audio_url);
await writeFile("./redacted-audio.mp3", redactedFileResponse.body);

执行脚本

在命令行中运行该脚本:

node index.js

如果成功,控制台将显示处理后的转录内容,并且处理后的音频文件将保存到您的磁盘。该教程还提供了一个未处理的转录内容示例以供比较。

结论

通过本教程,开发人员可以使用 AssemblyAI 和 Node.js 高效地处理音频和视频文件中的 PII 信息。更多详情请访问 AssemblyAI 博客



Read More