示例应用程序的下载链接:https://github.com/ashiqf/powerplatform/blob/main/OpenAI-SpeechtoText.msapp。替换 Power Automate 流 HTTP 操作授权头中的 API 密匙。

OpenAPI 语言转文档 API:

语言转文档API 提供两个端点:转录和翻译。目前,允许博上传的最大文件大小为25 MB,支持的音频格式为mp3、mp4、mpeg、mpga、m4a、wav和webm。我利用Translation API来表演其将英语音频转换为汉语的能力,它也可以理解其他语言

如果您尚未创建API密匙,请注册/登录OpenAI并从那里获得它。

身体:

与 Power Apps 集成:

我已经将 Power Automate 流与 Power Apps 触发器结合使用,以通过 Power Automate 中的 HTTP 连接器调用 Speech to Text API。或者,您可以通过构建自定义的连接器精灵果。可以从这里github 链接下载此说明示例应用程序。

麦克风控:

音频控件通过设备取下设备的麦克风捕捉获得音频输入,并将发送到Power Automate 流以使用Whisper API 转为文本。录音的音频格式遵从所作出的判决

  • Android 的 3gp 格式。
  • 适用于 iOS 的 AAC 格式。
  • Web 浏览器的 Webm 格式。

我已经从通过网络浏览器访问的应用程序中测试了这个控件。如果遇到 OpenAI 不支持的音频格式,可以使用 FFMpeg 等实例验证。文件的 .Net 版本可提供下载,可在 Azure Functions中使用。 John Liu (MVP) 写了一个示例 Azure 任数,该任数使用上描述实际使用程序处理音乐格式的转换。

步骤1:要将麦克风控制器添加到画布,请从命令栏插入麦克风控。要从麦克风控预览录制的音频,请添加一个音频

第2步:添加一个按键来切换和触发Power Automate流程。在Power FX代码下面找到

//使用音频文件或录制的音频集的二次制作生成JSON文件(varJson,JSON(Microphone1.Audio,JSONFormat.IncludeBinaryData));设置(strB64Audio,最后(拆分)(varJson,“,”;)。设置(strB64AudioContent,左(strB64Audio,Len(strB64Audio)- 1)); //提取音频格式集(varAudioFileType,Mid(varFileContent,Find(":",varFileContent)+1,Find(";",varFileContent)-查找(":",varFileContent)-1)); //调用 Power Automate Flow Set(audioText,'SpeechtoText-OpenAIWhisper'.Run(strB64AudioContent,varAudioFileType).audiotext);

Power FX 代号执行以下任务

  • 将麦克风控件获取的音频存储在变量中作为JSON数据,包括二进数据。
  • 使用字符串操作函数Split、Left、Mid从JSON数据中提取base64编码的音频内容。
  • 通过解析字符串变量确定音频文件类型。
  • 使用提取的音频内容和文件类型调使用Power Automate流程序“SpeechtoText-OpenAIWhisper”,以获取本文件后面部分中的相应文本转录。
  • 将生成的文本转换目录分配给名为“audioText”的变量,该变量分配给文本标记以显示来自 OpenAI Whisper API 的转换文本。

步骤 3:添加一个标签控件,显示转换后的文本设置为变量 音乐文本

文件上传控制

在我写这篇文章的那一天,没有可以处理Power Apps中所有类型文件的文件控件,我已经创建了一个自定义组件,利用附件控件来创建文件。更多详细信息,请参阅博客文章轻松上文件:使用Power Apps中的附件控件的指南以将控件添加到应用程序。

步骤1: 将文件附件控件从组件库添加到应用程序。将组件的最大附件的输入属性设置为1。

第二步: 要提取音频文件的二次制作内容,请向应用添加一个图像控件。Image 控件能够处理任何类型的文件以提取其内容。

步骤 3:添加一个按钮控件,用于将上传的文件转换为Audio。在下面找到PowerFX

//使用图像控件使用音频文件的二次生成JSON文本 Set(varFileContent,JSON(Image1.Image,JSONFormat.IncludeBinaryData)); //提取Base64内容Set(varExtractedFileContent,Last(Split(varFileContent,",")).Value); //从字符符串中删除最后一个字符" Set(varExtractedFileContent,Left(varExtractedFileContent,Len(varExtractedFileContent)-1)); //提取音频格式 Set(varAudioFileType,Mid(varFileContent,Find(":",varFileContent)+ 1 ,Find(";",varFileContent)-Find(":",varFileContent)-1)); //调用Power Automate Flow Set(audioText,'SpeechtoText-OpenAIWhisper'.Run(varExtractedFileContent,varAudioFileType).audiotext);

步骤4:添加一个标签控件,显示转换后的文本设置为变量 音乐文本

电源自动化流

现在,让我们使用触发器类型 Power Apps 创建一个 Power Automate 流,以调用 OpenAI Whisper API 并将语言转换为文本。 步骤1:添加两个组合操作(输入参与数)以从麦克风控制获取的录制音频或从Power Apps中的文件附件和上传的音频文件接收容

{ "$content-type": @{outputs('Compose-AudioFormat')}, "$content": @{triggerBody()['Compose-FileContent_Inputs']} }

第2步:添加 HTTP 连接器以向 Whisper API 端点发出请求。类型来处理 HTTP 操作中的部分/表格数据

请申请正文:

{ "$content-type": "multipart/form-data", "$multipart": [ { "headers": { "Content-Disposition": "form-data; name=\"model\"" }, " body": "whisper-1" }, { "headers": { "Content-Disposition": "form-data; name=\"file\";filename=\"audiofile.webm\"" }, "body" : @{outputs('Compose-FileContent')} } ] }

第三步: 添加 响应 PowerApp 或流量 将转换后的文本返回应用程序的操作。要获得转换后的文本,请使用以下表格达式

body('HTTP-CallaOpenApiModel')['文本']

该表达式是根据 Whisper API 调用的响应构造的。如果将响应属性发生变化,请确保相应地更新表达式。

概要:

在本文中,我概述了有关如何使用 Power Apps 开发工具有语言转文本功能的基本应用程序和使用 OpenAI 的 Whisper API 的 Power Automate 流程的步骤指南的指南可。无穷尽的,从创建虚拟助手到生成音乐视频字幕和翻译。另外,Whisper API 还可以用于转录视频文件,从而为其他功能增加更多功能。值得留意的是Azure,假的 Speech to Text 服务,但它的目标之前并不依托于 OpenAI Whisper 模型。但是,这两项服务有可能在未来最终整合。希望您已经找到此信息并感谢阅读。如果您是第一次来访,请访问我的博客查看我的其他博文。

你喜欢这篇文章吗?

使用本页右侧或底部的小部件使用您的电子邮寄地址订阅我的博客,以方便在我发布新文章时将它们直接发送到您的收件。