Perform various data analysis on SEC 13-F and obtain some insights of fund activities such as number of holdings, AUM, and change of holdings between two quarters.
日本語の概要は準備中です。原文の説明を表示しています。
Transcribe audio segments to text using Whisper models. Use larger models (small, base, medium, large-v3) for better accuracy, or faster-whisper for optimized performance. Always align transcription timestamps with diarization segments for accurate speaker-labeled subtitles.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
After speaker diarization, you need to transcribe each speech segment to text. Whisper is the current state-of-the-art for ASR, with multiple model sizes offering different trade-offs between accuracy and speed.
| Model | Size | Speed | Accuracy | Best For |
|---|---|---|---|---|
| tiny | 39M | Fastest | Lowest | Quick testing, low accuracy needs |
| base | 74M | Fast | Low | Fast processing with moderate accuracy |
| small | 244M | Medium | Good | Recommended balance |
| medium | 769M | Slow | Very Good | High accuracy needs |
| large-v3 | 1550M | Slowest | Best | Maximum accuracy |
small or large-v3For best accuracy (recommended for this task):
import whisper
model = whisper.load_model("large-v3") # Best accuracy
result = model.transcribe(audio_path)
For balanced performance:
import whisper
model = whisper.load_model("small") # Good balance
result = model.transcribe(audio_path)
For faster processing with similar accuracy, use faster-whisper:
from faster_whisper import WhisperModel
# Use small model with CPU int8 quantization
model = WhisperModel("small", device="cpu", compute_type="int8")
# Transcribe
segments, info = model.transcribe(audio_path, beam_size=5)
# Process segments
for segment in segments:
print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")
Advantages:
After diarization, you need to map Whisper transcriptions to speaker segments:
# After diarization, you have turns with speaker labels
turns = [
{'start': 0.8, 'duration': 0.86, 'speaker': 'SPEAKER_01'},
{'start': 5.34, 'duration': 0.21, 'speaker': 'SPEAKER_01'},
# ...
]
# Run Whisper transcription
model = whisper.load_model("large-v3")
result = model.transcribe(audio_path)
# Map transcriptions to turns
transcripts = {}
for i, turn in enumerate(turns):
turn_start = turn['start']
turn_end = turn['start'] + turn['duration']
# Find overlapping Whisper segments
overlapping_text = []
for seg in result['segments']:
seg_start = seg['start']
seg_end = seg['end']
# Check if Whisper segment overlaps with diarization turn
if seg_start < turn_end and seg_end > turn_start:
overlapping_text.append(seg['text'].strip())
# Combine overlapping segments
transcripts[i] = ' '.join(overlapping_text) if overlapping_text else '[INAUDIBLE]'
# If no transcription found for a segment
if not overlapping_text:
transcripts[i] = '[INAUDIBLE]'
# Or skip very short segments
if turn['duration'] < 0.3:
transcripts[i] = '[INAUDIBLE]'
Whisper can auto-detect language, but you can also specify:
# Auto-detect (recommended)
result = model.transcribe(audio_path)
# Or specify language for better accuracy
result = model.transcribe(audio_path, language="en")
small minimum, large-v3 for best resultsAfter transcription, combine with speaker labels for subtitles:
def generate_subtitles_ass(turns, transcripts, output_path):
# ... header code ...
for i, turn in enumerate(turns):
start_time = format_time(turn['start'])
end_time = format_time(turn['start'] + turn['duration'])
speaker = turn['speaker']
text = transcripts.get(i, "[INAUDIBLE]")
# Format: SPEAKER_XX: text
f.write(f"Dialogue: 0,{start_time},{end_time},Default,,0,0,0,,{speaker}: {text}\n")
large-v3 modelfaster-whisper with small modelfaster-whisper with int8 quantizationまだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Perform various data analysis on SEC 13-F and obtain some insights of fund activities such as number of holdings, AUM, and change of holdings between two quarters.
日本語の概要は準備中です。原文の説明を表示しています。
AC branch pi-model power flow equations (P/Q and |S|) with transformer tap ratio and phase shift, matching `acopf-math-model.md` and MATPOWER branch fields. Use when computing branch flows in either direction, aggregating bus injections for nodal balance, checking MVA (rateA) limits, computing branch loading %, or debugging sign/units issues in AC power flow.
日本語の概要は準備中です。原文の説明を表示しています。
Redact text from PDF documents for blind review anonymization
日本語の概要は準備中です。原文の説明を表示しています。
Use when checking simplified ADA-derived plan-view bathroom accessibility constraints such as turning space, door clear width, toilet centerline, grab bars, and lavatory knee/toe clearance.
日本語の概要は準備中です。原文の説明を表示しています。
Analyze failed GitHub Action jobs for a pull request.
日本語の概要は準備中です。原文の説明を表示しています。
Use when extracting plan-view architectural geometry from DXF files with semantic CAD layers, especially when outputs must normalize rooms, doors, fixtures, clearances, and grab bars into machine-checkable JSON.
日本語の概要は準備中です。原文の説明を表示しています。