」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 探索非同步 Deepgram API:使用 Python 進行語音轉文本

探索非同步 Deepgram API:使用 Python 進行語音轉文本

發佈於2024-11-07
瀏覽:544

今天將探索用於將語音轉換為文字的 Deepgram API [轉錄]。無論是建立語音助理、轉錄會議還是創建語音控制應用程序,Deepgram 都讓入門變得比以往更容易。

Exploring Async Deepgram API: Speech-to-Text using Python

什麼是 Deepgram?

Deepgram 是一個強大的語音辨識平台,它使用先進的機器學習模型來即時轉錄音訊。它提供了一個易於使用的 API,開發人員可以將其整合到他們的應用程式中,以執行諸如轉錄電話呼叫、將會議轉換為文本,甚至分析客戶互動等任務。

為什麼使用 Deepgram?

  • 準確性:Deepgram 憑藉在海量資料集上訓練的深度學習演算法而擁有很高的準確率。

  • 即時轉錄:說話時立即獲得結果,非常適合即時應用。

  • 多種語言:支援多種語言和口音,使其適合全球應用。

Deepgram API 入門

安裝 - pip install httpx

導入所需的庫

import httpx
import asyncio
import logging
import traceback

定義非同步函數

#recording_url: The URL of the audio file to be transcribed.
#callback_url: The URL to which Deepgram will send the #transcription results (optional).
#api_key: Your Deepgram API key.

async def transcribe_audio(recording_url: str, callback_url: str, api_key: str):
    url = "https://api.deepgram.com/v1/listen"

    # Define headers
    headers = {
        "Authorization": f"Token {api_key}"
    }

    # Define query parameters
    query_params = {
        "callback_method": "post",
        "callback": callback_url
    }

    # Define body parameters
    body_params = {
        "url": recording_url
    }

4. 發送非同步請求

    logger.info(f"Sending request to {url} with headers: {headers}, query: {query_params}, body: {body_params}")

    async with httpx.AsyncClient(timeout=60.0) as client:
        try:
            # Make a POST request with query parameters and body
            response = await client.post(url, headers=headers, params=query_params, json=body_params)
            response.raise_for_status()  # Raise an error for HTTP error responses
            result = response.json()
            logger.info(f"Response received: {result}")

            return result

我們建立一個逾時為 60 秒的 httpx.AsyncClient 實例。使用 async with 可確保客戶端在區塊執行後正確關閉。
如果請求成功,我們解析 JSON 回應並記錄它,然後傳回結果。

回撥網址:

您可以使用範例回呼 URL 進行測試。

結論:

這種結構化方法重點介紹如何利用 Python 中的非同步程式設計與 Deepgram API 高效互動。透過將程式碼分成塊並解釋每個部分,讀者可以更好地理解實現以及如何使其適應自己的需求。

版本聲明 本文轉載於:https://dev.to/shadow_b/exploring-async-deepgram-api-speech-to-text-using-python-5ckl?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 星期三連結 - 第 8 版
    星期三連結 - 第 8 版
    Java 23 已經到來,它帶來了大量的變化! (35 分鐘)? https://foojay.io/today/java-23-has-arrived-and-it-brings-a-truckload-of-changes/ Java 23 中的模式、instanceof 和 switch 中...
    程式設計 發佈於2024-11-07
  • 在 Fedora 24 伺服器和工作站上使用 MariaDB 和 PHP/PHP-FPM 設定 Nginx
    在 Fedora 24 伺服器和工作站上使用 MariaDB 和 PHP/PHP-FPM 設定 Nginx
    托管网站和在线应用程序需要设置 Web 服务器基础设施。在本文中,我们将尝试使用 MariaDB 和 PHP/PHP-FPM 了解在 Fedora 24 服务器和工作站上设置 Nginx。这种组合创建了一个强大的堆栈来管理数据库和呈现动态内容。这里介绍的主要概念可以应用于 Fedora 或其他 Li...
    程式設計 發佈於2024-11-07
  • 使用 React Hooks 和事件監聽器時,為什麼狀態控制台日誌顯示錯誤訊息?
    使用 React Hooks 和事件監聽器時,為什麼狀態控制台日誌顯示錯誤訊息?
    事件監聽器和React Hooks問題:使用React hooks和事件監聽器時,狀態控制台日誌顯示不正確的資訊。 問題描述考慮提供的CodeSandbox:https://codesandbox.io/s/lrxw1wr97m。當您按一下「新增卡片」按鈕兩次,然後按一下第一張卡片中的「Butto...
    程式設計 發佈於2024-11-07
  • 如何用Javascript實現IFRAME載入完成時的回呼?
    如何用Javascript實現IFRAME載入完成時的回呼?
    使用Javascript 回調載入Iframe要在IFRAME 完成載入時執行回調,請依照下列步驟操作: 建立IFRAME 與載入處理程序以程式設計方式建立IFRAME:var iFrameObj = document.createElement('IFRAME'); iFrameObj.src =...
    程式設計 發佈於2024-11-07
  • 如何管理部署到子資料夾的 MVC 應用程式的 URL 修改?
    如何管理部署到子資料夾的 MVC 應用程式的 URL 修改?
    了解應用程式子資料夾的URL 修改在開發部署到子資料夾的MVC 應用程式時,必須適應應用程式子資料夾的更改基本網址。這可確保 JavaScript 參考和 URL 在本機和部署環境中正常運作。 確定應用程式根的解決方案要確定根URL 並相應地修改JavaScript,有兩種方法:簡單方法:利用領先J...
    程式設計 發佈於2024-11-07
  • 如何將已知和未知鍵/值對的 JSON 解析為 Go 結構?
    如何將已知和未知鍵/值對的 JSON 解析為 Go 結構?
    使用任意鍵/值對解組JSON 到結構問題如何解析具有已知和未知鍵/值對的JSON 字符串進入Go 結構體?未知欄位可以具有任何名稱和值類型(字串、布林、float64 或 int)。 解決方案使用已知字段和未知字段的映射切片創建一個結構體:type Message struct { Know...
    程式設計 發佈於2024-11-07
  • [Go][Excelize] 確定儲存格值是否有刪除線
    [Go][Excelize] 確定儲存格值是否有刪除線
    簡介 我想確定儲存格的值是否有刪除線。 確定儲存格的值是否有刪除線 要確定儲存格的值是否有刪除線,我必須透過兩種方式取得儲存格樣式。 如果只有單元格的某些值被刪除,例如“A1”,我應該從“excelize.RichTextRun”取得單元格樣式。 如果單元格中...
    程式設計 發佈於2024-11-07
  • php:與進程的並發。角與 shmop 的進程間通信
    php:與進程的並發。角與 shmop 的進程間通信
    php isn't the sort of language where developers usually think about things like memory. we just sort of sling around variables and functions and let t...
    程式設計 發佈於2024-11-07
  • Kotlin vs. Java:Android 開發終極指南 4
    Kotlin vs. Java:Android 開發終極指南 4
    说到 Android 开发,争论最多的话题之一是 Kotlin 和 Java 之间的选择。两者都是功能强大的语言,各有优缺点,并且决策可以显着影响开发过程和最终产品。本博客将深入探讨 Kotlin 和 Java 的细微差别,从各个方面对它们进行比较,以帮助您决定哪种语言最适合您的 Android 开...
    程式設計 發佈於2024-11-07
  • 使用 Spring Boot 建立您的第一個微服務系統:初學者指南
    使用 Spring Boot 建立您的第一個微服務系統:初學者指南
    Introduction In this guide, we'll walk through the creation of a simple yet comprehensive microservices system using Spring Boot. We will cov...
    程式設計 發佈於2024-11-07
  • POST 請求能否觸發後退按鈕確認警報以及如何抑制它們?
    POST 請求能否觸發後退按鈕確認警報以及如何抑制它們?
    防止 POST 在按後退按鈕時確認警報透過 Web 表單提交大量參數時,經常使用 POST 請求而不是取得。但是,當使用者在頁面顯示後點選「後退」按鈕時,Firefox 會顯示確認警報。此警報警告 Firefox 將重新發送可能會重複先前操作的信息,例如搜尋或訂單確認。 雖然此行為可能旨在防止意外重...
    程式設計 發佈於2024-11-07
  • 用 PHP 建立一個簡單的頁面路由器
    用 PHP 建立一個簡單的頁面路由器
    建立文件 首先,我們將建立index.php、router.php和.htaccess檔案。 將所有請求重定向到.htaccess 中的index.php RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f R...
    程式設計 發佈於2024-11-07
  • 如何使用 :focus-visible 實現僅鍵盤焦點樣式?
    如何使用 :focus-visible 實現僅鍵盤焦點樣式?
    現代瀏覽器中僅鍵盤焦點樣式在現代瀏覽器中,:focus-visible 偽類可以用來實現鍵盤-僅焦點樣式。當使用者透過鍵盤或其他非指點裝置與頁面互動時,此偽類會符合焦點元素,從而在幫助使用者時指示焦點。因此,當使用者透過點擊或點擊進​​行互動時,聚焦環會被抑制。 自訂焦點樣式:focus-visib...
    程式設計 發佈於2024-11-07
  • 將 Google 日曆連接到 Django 應用程式
    將 Google 日曆連接到 Django 應用程式
    将 Google 日历与 Django 应用程序无缝集成以增强日程安排和事件管理的分步指南。 将 Google 日历与您的 Django 应用程序集成可以通过启用日程安排、事件管理和日历同步来显着增强您的 Web 应用程序的功能。本指南将引导您完成将 Google 日历连接到 Django 应用程序...
    程式設計 發佈於2024-11-07
  • 掌握 React 路由:應用程式導航完整指南
    掌握 React 路由:應用程式導航完整指南
    1. React Router簡介 React Router 是一個用於在 React 應用程式中處理路由的函式庫。它允許您的應用程式在不同的元件和視圖之間導航,而無需重新載入整頁,從而實現無縫的用戶體驗。 2. 基本設定 先安裝react-router-dom:...
    程式設計 發佈於2024-11-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3