Python으로 팟캐스트를 전사하는 방법
14333 단어 python
시작하기 전에
컴퓨터에 Python이 설치되어 있어야 합니다. 저는 이 글을 쓰는 시점에 Python 3.10을 사용하고 있습니다. 또한 Deepgram API 키get one here가 필요합니다.
새 디렉터리를 만들고 터미널에서 해당 디렉터리로 이동합니다. Create a virtual environment을
python3 -m venv virtual_env
로 활성화하고 source virtual_env/bin/activate
로 활성화합니다. pip install deepgram asyncio python-dotenv feedparser
로 종속성을 설치합니다.코드 편집기에서 디렉토리를 열고 빈
.env
파일을 만듭니다. Deepgram API 키를 가져와 .env
에 다음 줄을 추가합니다.DEEPGRAM_API_KEY="replace-this-bit-with-your-key"
종속성 및 파일 설정
빈
script.py
파일을 만들고 종속성을 가져옵니다.import asyncio
import os
from dotenv import load_dotenv
from deepgram import Deepgram
import feedparser
.env
파일에서 값을 로드하고 Deepgram 키를 변수에 저장합니다.load_dotenv()
DEEPGRAM_API_KEY = os.getenv('DEEPGRAM_API_KEY')
마지막으로 스크립트가 실행될 때 자동으로 실행되는
main()
함수를 설정합니다.async def main():
print('Hello world')
if __name__ == '__main__':
asyncio.run(main())
성적 증명서 생성
Deepgram은 호스팅된 파일과 로컬 파일을 모두 기록할 수 있으며 팟캐스팅의 맥락에서 파일은 RSS 피드 내에 포함될 수도 있습니다.
main()
함수 내에서 API 키로 Deepgram Python SDK를 초기화합니다.deepgram = Deepgram(DEEPGRAM_API_KEY)
옵션 1: 호스팅된 파일
호스팅된 파일을 기록하려면
url
속성을 제공합니다.url = 'https://traffic.megaphone.fm/GLT8627189710.mp3?updated=1655947230'
source = { 'url': url }
transcription_options = { 'punctuate': True }
response = await deepgram.transcription.prerecorded(source, transcription_options)
print(response)
옵션 2: RSS 피드
최신 팟캐스트 에피소드를 기록하려면
feedparser
를 사용하고 첫 번째로 반환된 항목을 선택합니다.rss = feedparser.parse('https://feeds.npr.org/510318/podcast.xml')
url = rss.entries[0].enclosures[0].href
source = { 'url': url }
transcription_options = { 'punctuate': True }
response = await deepgram.transcription.prerecorded(source, transcription_options)
print(response)
옵션 3: 로컬 파일
with open('icymi.mp3', 'rb') as audio:
source = { 'buffer': audio, 'mimetype': 'audio/mp3' }
transcription_options = { 'punctuate': True }
response = await deepgram.transcription.prerecorded(source, transcription_options)
print(response)
파일을 열면
audio
값에 액세스하려면 모든 추가 줄을 들여써야 합니다.화자 감지 및 단락
생성된 트랜스크립트는 꽤 좋지만 Deepgram에는 팟캐스트 트랜스크립트를 만들 때 큰 차이를 만드는 두 가지 추가 기능이 있습니다. 바로 diarization (speaker detection) 및 paragraphs 입니다.
transcription_options
업데이트:transcription_options = { 'punctuate': True, 'diarize': True, 'paragraphs': True }
print(response)
를 다음으로 바꾸면 멋진 형식의 기록에 액세스할 수 있습니다.transcript = response['results']['channels'][0]['alternatives'][0]['paragraphs']['transcript']
print(transcript)
파일에 성적 증명서 저장
출력과 함께 새 텍스트 파일을 저장하려면
print(transcript)
를 다음으로 바꿉니다.with open('transcript.txt', 'w') as f:
f.write(transcript)
마무리
아래에서 전체 코드 조각을 찾을 수 있습니다. 궁금한 점이 있으면 언제든지 문의하세요.
import asyncio
import os
from dotenv import load_dotenv
from deepgram import Deepgram
import feedparser
load_dotenv()
DEEPGRAM_API_KEY = os.getenv('DEEPGRAM_API_KEY')
async def main():
print('Hello world')
deepgram = Deepgram(DEEPGRAM_API_KEY)
# Option 1: Hosted File
url = 'your-hosted-file-url'
source = { 'url': url }
# Option 2: Latest Podcast Feed Item
# rss = feedparser.parse('rss-feed-url')
# url = rss.entries[0].enclosures[0].href
# source = { 'url': url }
# Option 3: Local File (Indent further code)
# with open('florist.mp3', 'rb') as audio:
# source = { 'buffer': audio, 'mimetype': 'audio/mp3' }
transcription_options = { 'punctuate': True, 'diarize': True, 'paragraphs': True }
response = await deepgram.transcription.prerecorded(source, transcription_options)
transcript = response['results']['channels'][0]['alternatives'][0]['paragraphs']['transcript']
with open('transcript.txt', 'w') as f:
f.write(transcript)
if __name__ == '__main__':
asyncio.run(main())
Reference
이 문제에 관하여(Python으로 팟캐스트를 전사하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/deepgram/how-to-transcribe-your-podcast-with-python-32i1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)