Views
No views yet
1import io
2import json
3import logging
4import sys
5import time
6from datetime import datetime
7from faster_whisper import WhisperModel
8from pydub import AudioSegment
9
10logging.basicConfig(
11 level=logging.INFO,
12 format='%(asctime)s - %(levelname)s - %(message)s',
13 handlers=[
14 logging.FileHandler('faster-whisper.log'),
15 logging.StreamHandler(sys.stdout)
16 ]
17)
18model = WhisperModel("/path/to/dvislobokov/faster-whisper-large-v3-turbo-russian", "cpu")
19
20audio = AudioSegment.from_wav("ezyZip.wav")
21chunk_length = 30 * 1000 # in milliseconds
22chunks = [audio[i:i + chunk_length] for i in range(0, len(audio), chunk_length)]
23
24
25logging.info(f'Start transcribe at {datetime.now().strftime("%Y-%m-%d %H:%M:%S")}')
26start = time.time()
27
28text = []
29for i, chunk in enumerate(chunks):
30 buffer = io.BytesIO()
31 chunk.export(buffer, format="wav")
32 segments, info = model.transcribe(buffer, language="ru")
33 text.append("".join(segment.text for segment in segments))
34end = time.time()
35logging.info(f'Finish transcribe at {datetime.now().strftime("%Y-%m-%d %H:%M:%S")}')
36logging.info(f'Total time: {end - start}')
37logging.info(f'Text: {text}')