发布于 2026-01-06 0 阅读
0

Decifer — 使用 Flutter 和 Deepgram 从音频生成转录文本 Decifer DEV 的全球展示与讲述挑战赛,由 Mux 呈现:展示你的项目!

Decifer——使用 Flutter 和 Deepgram 从音频生成转录文本

迪西弗Codemagic 构建状态

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

概述

Decifer是一款跨平台移动应用程序,它可以通过语音录音或上传音频文件来生成文字稿。

转录回放

试试这款应用: https://play.google.com/store/apps/details?id=com.souvikbiswas.deepgram_transcribe

通常情况下,使用 Deepgram API 需要维护服务器,但我已将这个项目设计成完全无服务器的。欲了解更多信息,请继续阅读。

以下是整个应用程序运行的简短演示:

提交类别:

分析大使

GitHub 代码链接

整个应用都是开源的——欢迎试用,也欢迎为这个项目做出贡献😉:

GitHub 标志 sbis04 / decifer

轻松生成音频转录文本。

迪西弗Codemagic 构建状态

关于此项目的博文:https://dev.to/sbis04/decifer-generate-transcripts-with-ease-5hl3

试用该应用:https://appdistribution.firebase.dev/i/a57e37b2fda28351

一款跨平台移动应用,可帮助您通过语音录音或上传音频文件生成文字稿。该项目采用完全无服务器架构。

建筑学

该移动应用使用Flutter开发并集成了Firebase。Firebase云函数用于部署与 Deepgram API 通信所需的后端代码。

应用概览

Flutter应用程序由以下页面/屏幕组成:

  • 登录页面
  • 注册页面
  • 仪表盘页面
  • 记录页
  • 上传页面
  • 转录页

应用内使用登录注册页面对用户进行身份验证。身份验证是为用户生成唯一账户所必需的,这些账户用于将生成的记录存储到Firestore并实现云同步

注册页面

仪表盘页面会显示用户账户中当前所有成绩单的列表。页面上还有两个按钮——……

项目描述

该应用程序的主要功能如下:

  • 使用Deepgram API从音频录音和音频文件生成文字稿
  • 云同步功能允许使用同一账户在多个设备之间进行同步。
  • 转录置信度图视图。
  • 导出为PDF格式并与任何人分享。

建筑学

我在这个项目中采用了完全无服务器架构🤯,让我们来看看它是如何工作的:

Decifer架构

该移动应用使用Flutter开发,并集成了Firebase。我使用 Firebase云函数部署了与 Deepgram API 通信所需的后端代码。

Firebase 云函数允许您在无服务器架构中运行后端代码。

我已将以下函数部署到 Firebase:



const functions = require("firebase-functions");
const {Deepgram} = require("@deepgram/sdk");

exports.getTranscription = functions.https.onCall(async (data, context) => {
  try {
    const deepgram = new Deepgram(process.env.DEEPGRAM_API_KEY);
    const audioSource = {
      url: data.url,
    };

    const response = await deepgram.transcription.preRecorded(audioSource, {
      punctuate: true,
      utterances: true,
    });

    console.log(response.results.utterances.length);

    const confidenceList = [];
    for (let i =0; i < response.results.utterances.length; i++) {
      confidenceList.push(response.results.utterances[i].confidence);
    }

    const webvttTranscript = response.toWebVTT();

    const finalTranscript = {
      transcript: webvttTranscript,
      confidences: confidenceList,
    };

    const finalTranscriptJSON = JSON.stringify(finalTranscript);
    console.log(finalTranscriptJSON);

    return finalTranscriptJSON;
  } catch (error) {
    console.error(`Unable to transcribe. Error ${error}`);
    throw new functions.https.HttpsError("aborted", "Could not transcribe");
  }
});


Enter fullscreen mode Exit fullscreen mode

getTranscription函数接受一个音频 URL,使用 Deepgram API 生成转录文本以及相应的置信度,并以特定的 JSON 格式(可在应用程序中解析)返回数据。

应用屏幕

Flutter应用程序由以下页面/屏幕组成:

  • 登录页面
  • 注册页面
  • 仪表盘页面
  • 记录页
  • 上传页面
  • 转录页

应用内使用登录注册页面对用户进行身份验证。身份验证是为用户生成唯一账户所必需的,这些账户用于将生成的记录存储到Firestore并实现云同步

注册页面

仪表盘页面会显示用户账户中当前所有成绩单的列表。页面上还有两个按钮——一个用于导航至记录页面,另一个用于导航至上传页面。

仪表盘页面

录音页面允许您使用设备麦克风录制音频,然后使用 Deepgram 进行转录。如果您觉得上次录音效果不佳,可以随时重新录制。

记录页

上传页面,您可以选择设备上的任何音频文件并生成其文字稿。

上传页面

转录页面用于查看完整的转录文本。它具有音频与转录文本同步播放功能,能够根据正在播放的音频高亮显示相应的文本转录部分。

转录页

您还可以查看转录文本各个部分的置信度图(它显示了转录文本生成的该部分的准确程度 - 颜色越深,置信度越高)。

置信度图

您还可以轻松地以PDF格式打印或分享生成的成绩单

导出记录

迪普格拉姆

我的 Deepgram 控制面板概览(已完成任务:通过 API 或 SDK 获取转录文本):

Deepgram 概述

Deepgram API 使用情况分析:

Deepgram 使用情况分析

以下是其中一次音频转录 API 调用的日志:

Deepgram 日志

参考

文章来源:https://dev.to/sbis04/decifer-generate-transcripts-with-ease-5hl3