日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python将音频转换成文字_用Python将音频内容转换为文本格式

發布時間:2023/12/10 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python将音频转换成文字_用Python将音频内容转换为文本格式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當對一個或多個人的談話進行記錄時,采用一種高度準確和自動化的方式將口語提取為文本非常有用。轉換成文字后,便可以將其用于進一步分析或用作其他功能。

在本教程中,我們將使用稱為AssemblyAI(https://www.assemblyai.com/)的高精度語音轉文本Web API從MP3錄音中提取文本(也支持許多其他格式)。

在本教程中,音頻文件示例下載地址請掃描本文下方二維碼添加Python小助手獲取,下面是音頻輸出如下所示的高精度文本轉錄內容:

教程要求

在本教程中,我們將使用以下依賴項,稍后將安裝它們。請確保您的環境中還安裝了Python 3,最好安裝3.6或更高版本:

我們將使用以下依賴關系來完成本教程:requests 2.24.0 來向AssemblyAI語音文本API發出HTTP請求

一個 AssemblyAI 帳戶,您可以在此處(https://app.assemblyai.com/login/)注冊免費的API訪問密鑰

本文所有代碼下載地址請掃描本文下方二維碼添加Python小助手獲取。

搭建開發環境

轉到保存Python虛擬環境的目錄。我將我的目錄保存在用戶主目錄下的venvs子目錄中。使用以下命令為此項目創建一個新的virtualenv。

用 shell 命令激活 virtualenv:

執行上述命令后,命令提示符將發生更改,因此virtualenv的名稱將以原始命令提示符格式開頭,如果您的提示符只是$,則其外觀如下所示:

請記住,您必須在每個 virtualenv 中使用依賴項的新終端窗口中激活您的 virtualenv 。

現在,我們可以將請求包安裝到已激活但為空的 virtualenv 中。

查找類似于以下內容的輸出,以確認從PyPI正確安裝了相應的軟件包。

我們已經安裝了所有必需的依賴項,因此我們可以開始對應用程序進行編碼。

上傳、啟動和轉錄音頻

我們已完成開始構建應用程序所需的一切,該應用程序會將音頻轉換為文本。我們將在三個文件中構建此應用程序:

1、upload_audio_file.py:將您的音頻文件上傳到AssemblyAI服務上的安全位置,以便可以進行處理。如果您的音頻文件已經可以通過公共URL訪問,則無需執行此步驟,只需按照此快速入門(https://docs.assemblyai.com/overview/getting-started)

2、initial_transcription.py:告訴API要轉錄并立即啟動的文件

3、get_transcription.py:如果仍在處理轉錄,則顯示轉錄狀態,或者在處理完成后顯示轉錄結果

創建一個名為pytranscribe的新目錄,以在我們編寫文件時存儲這些文件。然后轉到新的項目目錄。

我們還需要將 AssemblyAI API 密鑰導出為環境變量。注冊 AssemblyAI 帳戶并登錄 AssemblyAI 儀表板,然后復制“您的API token”,如以下屏幕截圖所示:

請注意,必須每個命令行窗口中使用 export 命令以保證此密鑰可訪問。如果您沒有在運行腳本的環境中將標記導出為 ASSEMBLYAI_KEY,則我們正在編寫的腳本將無法訪問API。

現在我們已經創建了項目目錄并將API密鑰設置為環境變量,讓我們繼續編寫第一個文件的代碼,該文件會將音頻文件上傳到AssemblyAI服務。

上傳音頻文件并進行轉錄

創建一個名為upload_audio_file.py的新文件,并將以下代碼放入其中:

上面的代碼導入了argparse,os和request軟件包,以便我們可以在此腳本中使用它們。API_URL是一個常量,具有AssemblyAI服務的基本URL。我們使用單個參數定義upload_file_to_api函數,filename應該是一個字符串,其中包含文件及其文件名的絕對路徑。

在函數中,我們檢查文件是否存在,然后使用Request的分塊傳輸編碼將大文件流式傳輸到AssemblyAI API。

os模塊的getenv函數讀取使用帶有getenv的export命令在命令行上設置的API。確保在運行此腳本的終端中使用該導出命令,否則ASSEMBLYAI_KEY值將為空白。如有疑問,請使用echo $ ASSEMBLY_AI查看該值是否與您的API密鑰匹配。

要使用upload_file_to_api函數,請將以下代碼行添加到upload_audio_file.py文件中,以便我們可以正確地將此代碼作為使用python命令調用的腳本執行:

上面的代碼創建了一個ArgumentParser對象,它允許應用程序從命令行獲取單個參數來指定我們要訪問的對象,讀取并上傳到AssmeblyAI服務的文件。

如果文件不存在,腳本將顯示一條消息,提示找不到該文件。在路徑中,我們確實找到了正確的文件,然后使用upload_file_to_api函數中的代碼上傳了文件。

通過使用python命令在命令行上運行完整的upload_audio_file.py腳本,以執行該腳本。將FULL_PATH_TO_FILE替換為您要上傳的文件的絕對路徑,例如/Users/matt/devel/audio.mp3。

假設在您指定的位置找到文件,當腳本完成文件的上傳后,它將打印一條帶有唯一URL的消息:

該URL不是公開的,只能由AssemblyAI服務使用,因此除您及其轉錄的API外,其他任何人都無法訪問您的文件及其內容。

重要的部分是URL的最后一部分,在此示例中為463ce27f-0922-4ea9-9ce4-3353d84b5638。保存該唯一標識符,因為我們需要將其傳遞給下一個啟動轉錄服務的腳本。

啟動轉錄

接下來,我們將編寫一些代碼來開始轉錄。創建一個名為initial_transcription.py的新文件。將以下代碼添加到新文件中。

我們具有與先前腳本相同的導入,并添加了一個新常量CDN_URL,該常量與AssemblyAI存儲上傳的音頻文件的單獨URL匹配。

initiate_transcription函數本質上只是向AssemblyAI API設置了一個HTTP請求,以傳入的特定URL對音頻文件啟動轉錄過程。這就是為什么file_id傳遞很重要的原因:完成音頻文件的URL 我們告訴AssemblyAI進行檢索。

通過附加此代碼來完成文件,以便可以從命令行輕松地使用參數調用它。

通過在initiate_transcription文件上運行python命令來啟動腳本,并傳入您在上一步中保存的唯一文件標識符。

API將發回該腳本打印到命令行的JSON響應。

記下JSON響應中id鍵的值。這是我們需要用來檢索轉錄結果的轉錄標識符。在此示例中,它是gkuu2krb1-8c7f-4fe3-bb69-6b14a2cac067。復制轉錄標識符到您自己的響應中,因為在下一步中我們將需要它來檢查轉錄過程何時完成。

檢索轉錄結果

我們已經上傳并開始了轉錄過程,因此,準備就緒后,我們將盡快獲得結果。

返回結果所需的時間取決于文件的大小,因此下一個腳本將向HTTP發送一個HTTP請求,并報告轉錄狀態,或者在完成后打印輸出。

創建一個名為 get_transcription.py 的第三個Python文件,并將以下代碼放入其中。

上面的代碼與其他腳本具有相同的 imports 對象。在這個新的get_transcription函數中,我們只需使用我們的API密鑰和上一步中的轉錄標識符(而不是文件標識符)調用AssemblyAI API。我們檢索JSON響應并將其返回。

在main函數中,我們處理作為命令行參數傳入的轉錄標識符,并將其傳遞給get_transcription函數。如果來自get_transcription函數的響應JSON包含completed狀態,則我們將打印轉錄結果。否則,請在completed之前打印當前狀態如queued或processing。

使用命令行和上一節中的轉錄標識符調用腳本:

如果該服務尚未開始處理腳本,則它將返回queued,如下所示:

當服務當前正在處理音頻文件時,它將返回processing:

該過程完成后,我們的腳本將返回轉錄文本,如您在此處看到的那樣:

就是這樣,我們已經轉錄完成了!

您可能想知道如果精度不適合您的情況該怎么辦。這就是需要用到提高關鍵字或短語的準確性方法(https://docs.assemblyai.com/guides/boosting-accuracy-for-keywords-or-phrases)和選擇與數據更匹配的模型方法(https://docs.assemblyai.com/guides/transcribing-with-a-different-acoustic-or-custom-language-model)的地方。您可以使用這兩種方法中的任一種,將記錄的準確性提高到適合您情況的水平。

下一步是什么?

我們剛剛完成了一些腳本,這些腳本調用AssemblyAI API來將帶有語音的錄音轉錄為文本輸出。您可以查閱文檔(https://docs.assemblyai.com/overview/getting-started)來增加一些更高級功能:支持不同的文件格式

轉錄雙通道/立體聲錄音

獲取揚聲器標簽(揚聲器隔離)

總結

以上是生活随笔為你收集整理的python将音频转换成文字_用Python将音频内容转换为文本格式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。