使用 OpenAI Whisper API 進行語音轉文字,方便字幕後製或內容整理

閱讀時間約 6 分鐘

前提

註冊 OpenAI 的 API ,並取得 SECRET KEY,然後填到程式裡面的 openai.api_key 裡。

基本的 Python 知識以及 Debug 能力。

raw-image

程式碼, Python實現

import openai
from pydub import AudioSegment
import os
import codecs
import tempfile

# Set your OpenAI API key here
openai.api_key = 'your_openai_api_key'

def transcribe_audio_with_whisper(audio_file_path):
"""
Transcribe an audio file using OpenAI's Whisper API.

Args:
- audio_file_path: Path to the audio file to transcribe.

Returns:
- The transcribed text as a string.
"""
with open(audio_file_path, "rb") as audio_file:
response = openai.Audio.transcribe('whisper-1', audio_file)
return response['data']['text']

def split_and_transcribe_audio(file_path, segment_length_seconds=30):
try:
song = AudioSegment.from_file(file_path)
except Exception as e:
raise Exception(f"Error loading audio file: {e}")

segment_length_ms = segment_length_seconds * 1000 # Correct calculation of milliseconds
transcripts = []

with tempfile.TemporaryDirectory() as temp_dir:
for i, segment in enumerate([song[i:i+segment_length_ms] for i in range(0, len(song), segment_length_ms)]):
segment_file_path = os.path.join(temp_dir, f"segment_{i}.mp3")
segment.export(segment_file_path, format="mp3")

transcript = transcribe_audio_with_whisper(segment_file_path)
time_in_seconds = i * segment_length_seconds
timestamp = f"[{time_in_seconds // 60:02d}:{time_in_seconds % 60:02d}]"
transcripts.append(timestamp + " " + transcript)

output_file_name = os.path.splitext(os.path.basename(file_path))[0] + '.txt'
with codecs.open(output_file_name, 'w', encoding='utf-8') as f: # Using UTF-8 encoding
f.write("\n".join(transcripts))

# Example usage
split_and_transcribe_audio("test.mp3")

解釋

  1. 設置OpenAI API SECRET:需要在程式中設定你的OpenAI API鑰匙,以便使用Whisper API。
  2. transcribe_audio_with_whisper 函數
    • 功能:使用 OpenAI 的 Whisper API 轉寫給定的音訊檔案。
    • 參數:接受一個參數 audio_file_path,即需要轉寫的音訊檔案路徑。
    • 返回值:返回轉寫後的文字。
    • 實現方式:通過讀取音訊檔案並使用 openai.Audio.transcribe 方法來獲得轉寫結果。
  3. split_and_transcribe_audio 函數
    • 功能:將長音訊檔案分割成較小的片段(預設為30秒長),然後使用Whisper API轉寫每個片段。
    • 參數:file_path:長音訊檔案的路徑。segment_length_seconds:每個音訊片段的時長(秒),默認為30秒。
    • 過程:使用 AudioSegment.from_file 加載音訊檔案。根據指定的片段長度(毫秒)將音訊分割成多個片段。為每個片段創建一個臨時文件,然後將其導出為MP3格式。對每個片段使用 transcribe_audio_with_whisper 函數進行轉寫。將轉寫結果和對應的時間戳添加到轉寫列表中。
    • 輸出:將所有轉寫結果連同時間戳寫入到一個以原音訊檔案名命名的純文字文件中(換成 .txt)。

範例用法:程式最後展示了如何使用 split_and_transcribe_audio 函數來轉寫名為 "test.mp3" 的音訊檔案。


留言0
查看全部
發表第一個留言支持創作者!
結論 以下觀點只針對我看的房型、看區域的角度、跟符不符合我現在的需求而定。具有非常強烈的主觀意識,如果不喜歡可以當作看看笑笑就好,請不要找我吵架。 接待中心很大器,大廳很不錯。代銷一副想吵架的樣子,我真的不是友商來的間諜。(笑) 優點: 捷運近,家樂福近,運動中心近。 無聯通巷子內,安靜。
結論 以下觀點只針對我看的房型、看區域的角度、跟符不符合我現在的需求而定。具有非常強烈的主觀意識,如果不喜歡可以當作看看笑笑就好,請不要找我吵架。 接待中心很大器,大廳很不錯。代銷一副想吵架的樣子,我真的不是友商來的間諜。(笑) 優點: 捷運近,家樂福近,運動中心近。 無聯通巷子內,安靜。
你可能也想看
Google News 追蹤
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
人工智慧(AI)在企業管理中扮演日益關鍵的角色。例如,全球第二大葡萄酒與烈酒生產集團法國保樂力加公司(Pernod Ricard)使用AI提供銷售人員專業建議,提高效率和決策品質。運用AI提供銷售人員專業建議,以提升效率和決策品質。同樣地,全球第五大製藥廠賽諾菲(Sanofi)則借助AI優化並整合各
這篇教學文章將介紹如何使用 OpenAI 的 GPT-3 模型來建立一個簡單的聊天機器人。
Thumbnail
➤ 前言:Azure OpenAI 提供全面、高效的人工智能服務 在當今的數字化時代,企業和組織需要應對複雜的業務需求,而人工智能成為了實現這些需求的關鍵技術之一。 作為 Microsoft Azure 平台上一個全面、高效的人工智能服務,Azure OpenAI 提供了多種 AI 功能,包括自然語
Thumbnail
如果依變項並非連續變項時,就可以改用羅吉斯迴歸。接下來本文將介紹勝算、勝算比、計算範例、二元/順序/多項式羅吉斯迴歸分析範例和SPSS操作方法。
Thumbnail
通常我們對於類別變項就直接看敘述統計大小,但如果我們想要用檢定確定兩者差距是達到統計顯著,就要用卡方檢定(Chi-square test)是一種統計學方法,獨立性考驗用於檢驗兩個類別變項各組別之間是否有顯著關聯。本文將介紹卡方檢定並介紹上機操作和事後比較方法。
Thumbnail
本篇介紹Mplus的「結構方程模型(Structural Equation Modelling, SEM)」之語法內容,並透過例題向大家示範如何分析撰寫SEM的語法。本文為新手教學,輸入方式可能不是最有效率,但是比較簡單且不太會犯錯
Thumbnail
在資料分析領域中,購物籃分析又稱關聯分析,從大量的交易資料中,探勘出在資料間具有相關性的隱藏規則與商業知識。
Thumbnail
當樣本有所關聯時,就不能使用獨立樣本t檢定,而是需要使用相依樣本t檢定,本文檢定介紹使用時機,並教導如何使用SPSS進行相依樣本t檢定
Thumbnail
t檢定用於比較兩個平均數之間的差異。本文章會詳細介紹如何使用SPSS進行獨立樣本t檢定,並介紹如何詮釋統計報表。
Thumbnail
1. 進入https://notify-bot.line.me/zh_TW/ 登入line後,點選右上角個人頁面 2. 點選發行權杖, 輸入名稱與要接收通知的群組。 按下發行後,複製token。 3. 記得將LINE Notify這個帳號加入該群組中: 4. 使用curl發送訊息: curl
Thumbnail
接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
Thumbnail
🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
人工智慧(AI)在企業管理中扮演日益關鍵的角色。例如,全球第二大葡萄酒與烈酒生產集團法國保樂力加公司(Pernod Ricard)使用AI提供銷售人員專業建議,提高效率和決策品質。運用AI提供銷售人員專業建議,以提升效率和決策品質。同樣地,全球第五大製藥廠賽諾菲(Sanofi)則借助AI優化並整合各
這篇教學文章將介紹如何使用 OpenAI 的 GPT-3 模型來建立一個簡單的聊天機器人。
Thumbnail
➤ 前言:Azure OpenAI 提供全面、高效的人工智能服務 在當今的數字化時代,企業和組織需要應對複雜的業務需求,而人工智能成為了實現這些需求的關鍵技術之一。 作為 Microsoft Azure 平台上一個全面、高效的人工智能服務,Azure OpenAI 提供了多種 AI 功能,包括自然語
Thumbnail
如果依變項並非連續變項時,就可以改用羅吉斯迴歸。接下來本文將介紹勝算、勝算比、計算範例、二元/順序/多項式羅吉斯迴歸分析範例和SPSS操作方法。
Thumbnail
通常我們對於類別變項就直接看敘述統計大小,但如果我們想要用檢定確定兩者差距是達到統計顯著,就要用卡方檢定(Chi-square test)是一種統計學方法,獨立性考驗用於檢驗兩個類別變項各組別之間是否有顯著關聯。本文將介紹卡方檢定並介紹上機操作和事後比較方法。
Thumbnail
本篇介紹Mplus的「結構方程模型(Structural Equation Modelling, SEM)」之語法內容,並透過例題向大家示範如何分析撰寫SEM的語法。本文為新手教學,輸入方式可能不是最有效率,但是比較簡單且不太會犯錯
Thumbnail
在資料分析領域中,購物籃分析又稱關聯分析,從大量的交易資料中,探勘出在資料間具有相關性的隱藏規則與商業知識。
Thumbnail
當樣本有所關聯時,就不能使用獨立樣本t檢定,而是需要使用相依樣本t檢定,本文檢定介紹使用時機,並教導如何使用SPSS進行相依樣本t檢定
Thumbnail
t檢定用於比較兩個平均數之間的差異。本文章會詳細介紹如何使用SPSS進行獨立樣本t檢定,並介紹如何詮釋統計報表。
Thumbnail
1. 進入https://notify-bot.line.me/zh_TW/ 登入line後,點選右上角個人頁面 2. 點選發行權杖, 輸入名稱與要接收通知的群組。 按下發行後,複製token。 3. 記得將LINE Notify這個帳號加入該群組中: 4. 使用curl發送訊息: curl