SQL
CREATE TABLE "audio_transcriptions" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
audio_chunk_id INTEGER NOT NULL,
offset_index INTEGER NOT NULL,
timestamp TIMESTAMP NOT NULL,
transcription TEXT NOT NULL,
device TEXT NOT NULL DEFAULT '',
is_input_device BOOLEAN NOT NULL DEFAULT TRUE,
speaker_id INTEGER,
transcription_engine TEXT NOT NULL DEFAULT 'Whisper',
start_time REAL,
end_time REAL,
text_length INTEGER,
sync_id TEXT,
synced_at DATETIME,
FOREIGN KEY (audio_chunk_id) REFERENCES audio_chunks(id)
)
Columns
| Column |
Data type |
Allow null |
Primary key |
Actions |
id |
INTEGER |
✓ |
✓ |
read-only
|
audio_chunk_id |
INTEGER |
|
|
read-only
|
offset_index |
INTEGER |
|
|
read-only
|
timestamp |
TIMESTAMP |
|
|
read-only
|
transcription |
TEXT |
|
|
read-only
|
device |
TEXT |
|
|
read-only
|
is_input_device |
BOOLEAN |
|
|
read-only
|
speaker_id |
INTEGER |
✓ |
|
read-only
|
transcription_engine |
TEXT |
|
|
read-only
|
start_time |
REAL |
✓ |
|
read-only
|
end_time |
REAL |
✓ |
|
read-only
|
text_length |
INTEGER |
✓ |
|
read-only
|
sync_id |
TEXT |
✓ |
|
read-only
|
synced_at |
DATETIME |
✓ |
|
read-only
|
Foreign Keys
| Column |
Destination |
audio_chunk_id |
audio_chunks.id |
Indexes
| Name |
Columns |
Unique |
SQL |
Drop? |
| idx_audio_transcription_chunk_text |
audio_chunk_id
transcription
|
✓ |
SQL
CREATE UNIQUE INDEX idx_audio_transcription_chunk_text
ON audio_transcriptions(audio_chunk_id, transcription)
|
read-only
|
| idx_audio_transcriptions_audio_chunk_id |
audio_chunk_id
|
|
SQL
CREATE INDEX idx_audio_transcriptions_audio_chunk_id
ON audio_transcriptions(audio_chunk_id)
|
read-only
|
| idx_audio_transcriptions_audio_chunk_id_timestamp |
|
|
SQL
CREATE INDEX idx_audio_transcriptions_audio_chunk_id_timestamp
ON audio_transcriptions(audio_chunk_id, timestamp)
|
read-only
|
| idx_audio_transcriptions_length |
text_length
|
|
SQL
CREATE INDEX idx_audio_transcriptions_length
ON audio_transcriptions (text_length)
|
read-only
|
| idx_audio_transcriptions_speaker_id_timestamp |
|
|
SQL
CREATE INDEX idx_audio_transcriptions_speaker_id_timestamp
ON audio_transcriptions(speaker_id, timestamp DESC)
|
read-only
|
| idx_audio_transcriptions_sync_id |
sync_id
|
|
SQL
CREATE INDEX idx_audio_transcriptions_sync_id
ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL
|
read-only
|
| idx_audio_transcriptions_timestamp |
timestamp
|
|
SQL
CREATE INDEX idx_audio_transcriptions_timestamp
ON audio_transcriptions(timestamp)
|
read-only
|
| idx_audio_transcriptions_transcription |
transcription
|
|
SQL
CREATE INDEX idx_audio_transcriptions_transcription
ON audio_transcriptions(transcription)
|
read-only
|
Triggers
| Name |
SQL |
Drop? |
| audio_transcriptions_ai |
SQL
CREATE TRIGGER audio_transcriptions_ai AFTER INSERT ON audio_transcriptions
WHEN NEW.transcription IS NOT NULL AND NEW.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(rowid, transcription, device, speaker_id)
VALUES (NEW.id, NEW.transcription, COALESCE(NEW.device, ''), NEW.speaker_id);
END
|
read-only
|
| audio_transcriptions_delete |
SQL
CREATE TRIGGER audio_transcriptions_delete AFTER DELETE ON audio_transcriptions
WHEN OLD.transcription IS NOT NULL AND OLD.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(audio_transcriptions_fts, rowid, transcription, device, speaker_id)
VALUES ('delete', OLD.id, OLD.transcription, COALESCE(OLD.device, ''), OLD.speaker_id);
END
|
read-only
|
| audio_transcriptions_update |
SQL
CREATE TRIGGER audio_transcriptions_update AFTER UPDATE ON audio_transcriptions
WHEN OLD.transcription IS NOT NULL AND OLD.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(audio_transcriptions_fts, rowid, transcription, device, speaker_id)
VALUES ('delete', OLD.id, OLD.transcription, COALESCE(OLD.device, ''), OLD.speaker_id);
INSERT INTO audio_transcriptions_fts(rowid, transcription, device, speaker_id)
VALUES (NEW.id, COALESCE(NEW.transcription, ''), COALESCE(NEW.device, ''), NEW.speaker_id);
END
|
read-only
|