使用 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
查看全部
avatar-img
發表第一個留言支持創作者!
結論 以下觀點只針對我看的房型、看區域的角度、跟符不符合我現在的需求而定。具有非常強烈的主觀意識,如果不喜歡可以當作看看笑笑就好,請不要找我吵架。 接待中心很大器,大廳很不錯。代銷一副想吵架的樣子,我真的不是友商來的間諜。(笑) 優點: 捷運近,家樂福近,運動中心近。 無聯通巷子內,安靜。
結論 以下觀點只針對我看的房型、看區域的角度、跟符不符合我現在的需求而定。具有非常強烈的主觀意識,如果不喜歡可以當作看看笑笑就好,請不要找我吵架。 接待中心很大器,大廳很不錯。代銷一副想吵架的樣子,我真的不是友商來的間諜。(笑) 優點: 捷運近,家樂福近,運動中心近。 無聯通巷子內,安靜。
你可能也想看
Google News 追蹤
Thumbnail
了解如何使用 Cloudflare Workers AI 與 Whisper 建立免費開源的語音辨識功能。本文詳細說明註冊步驟、部署流程及程式碼修改,讓你輕鬆將語音轉換成文字。
Thumbnail
還記得我們之前介紹過「【Google Colab Python系列】 初探Whisper: 來一段Youtube影片進行語音辨識吧!」這套語音辨識引擎, 那為什麼我們又要教這一套? 因為我們也可以將whisper的模型轉換成onnx的格式, 輕鬆移植到各種平台, 且效能更佳。 語音辨識的熱門組件之
Thumbnail
本文主要使用SpeechRecognition來做一個簡單的語音辨識,使用pyqt5介面呈現。 按下Start Recording,開始錄音,並顯示請開始說話。然後按鈕名改名Stop 在按下Stop Recording,稍等片刻後就會呈現出辨識結果​ 程式範例 import sys i
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在AI說書 - 從0開始 - 32中,展示了OpenAI的API如何使用,儘管 API 可以滿足許多需求,但它們也有其限制,例如,多用途 API 可能在所有任務
Thumbnail
免費文字轉語音(Free text to speech)免費的線上語音合成工具,使用微軟 AI 語音庫生成仿真人語音,支援 129 種語言,提供三百多種聲音,輸入文本即可線上聆聽和下載 MP3 檔案。
Thumbnail
合成聲音技術的未來充滿希望,也存在挑戰。OpenAI呼籲社會各界一起加強對這一新興技術的認識,並共同探索如何有效地利用這項技術,同時保護公眾免受潛在的負面影響。
Thumbnail
文字MP3專業版是簡單且強大的工具,會編輯文字就能創造出專業級配音。簡單 ﹑容易上手,像使用Word,無需剪輯經驗,輕鬆完成調整語速﹑插入空秒﹑插入背景音樂或音效等方面的製作。提供多種語言和配音員選擇,包括純正的臺灣口音。這個工具能應用於各種情境,如教育訓練簡報、有聲書、Podcast等。
Thumbnail
要如何做到無須任何額外訓練樣本就能做到"跨語言"的語音生成,這聽起來很不可思議對吧? 但這就是本篇論文取得的成就,不僅如此,該有的功能,如調整情感,口音節奏,停頓語調這些功能也不在話下。跟著我一起用探秘還有獨立思考的眼光來分析這篇論文,這會是很有趣的旅程。
Thumbnail
本文提供如何使用 Google Colab 結合 Faster Whisper 來提升語音辨識速度與準確性,包含安裝指南與使用方法。探索如何將語音轉換為文本,並對檔案進行不同格式的輸出。
Thumbnail
本篇筆記了如何使用Google Colab和OpenAI的Whisper Large V3進行免費且開源的語音辨識。涵蓋從基礎設定到實際運用的步驟,適合初學者和技術愛好者輕鬆學習語音辨識技術。
Thumbnail
了解如何使用 Cloudflare Workers AI 與 Whisper 建立免費開源的語音辨識功能。本文詳細說明註冊步驟、部署流程及程式碼修改,讓你輕鬆將語音轉換成文字。
Thumbnail
還記得我們之前介紹過「【Google Colab Python系列】 初探Whisper: 來一段Youtube影片進行語音辨識吧!」這套語音辨識引擎, 那為什麼我們又要教這一套? 因為我們也可以將whisper的模型轉換成onnx的格式, 輕鬆移植到各種平台, 且效能更佳。 語音辨識的熱門組件之
Thumbnail
本文主要使用SpeechRecognition來做一個簡單的語音辨識,使用pyqt5介面呈現。 按下Start Recording,開始錄音,並顯示請開始說話。然後按鈕名改名Stop 在按下Stop Recording,稍等片刻後就會呈現出辨識結果​ 程式範例 import sys i
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在AI說書 - 從0開始 - 32中,展示了OpenAI的API如何使用,儘管 API 可以滿足許多需求,但它們也有其限制,例如,多用途 API 可能在所有任務
Thumbnail
免費文字轉語音(Free text to speech)免費的線上語音合成工具,使用微軟 AI 語音庫生成仿真人語音,支援 129 種語言,提供三百多種聲音,輸入文本即可線上聆聽和下載 MP3 檔案。
Thumbnail
合成聲音技術的未來充滿希望,也存在挑戰。OpenAI呼籲社會各界一起加強對這一新興技術的認識,並共同探索如何有效地利用這項技術,同時保護公眾免受潛在的負面影響。
Thumbnail
文字MP3專業版是簡單且強大的工具,會編輯文字就能創造出專業級配音。簡單 ﹑容易上手,像使用Word,無需剪輯經驗,輕鬆完成調整語速﹑插入空秒﹑插入背景音樂或音效等方面的製作。提供多種語言和配音員選擇,包括純正的臺灣口音。這個工具能應用於各種情境,如教育訓練簡報、有聲書、Podcast等。
Thumbnail
要如何做到無須任何額外訓練樣本就能做到"跨語言"的語音生成,這聽起來很不可思議對吧? 但這就是本篇論文取得的成就,不僅如此,該有的功能,如調整情感,口音節奏,停頓語調這些功能也不在話下。跟著我一起用探秘還有獨立思考的眼光來分析這篇論文,這會是很有趣的旅程。
Thumbnail
本文提供如何使用 Google Colab 結合 Faster Whisper 來提升語音辨識速度與準確性,包含安裝指南與使用方法。探索如何將語音轉換為文本,並對檔案進行不同格式的輸出。
Thumbnail
本篇筆記了如何使用Google Colab和OpenAI的Whisper Large V3進行免費且開源的語音辨識。涵蓋從基礎設定到實際運用的步驟,適合初學者和技術愛好者輕鬆學習語音辨識技術。