Общий индекс · снимок 8223244a5e72 · native export

voice — Complete Call Flow & Architecture Documentation

Generated from graphify knowledge graph: 1135 nodes, 3635 edges, 1 communities. Commit: unknown

1. Architecture Overview

%%{init: {"theme": "dark", "themeVariables": {"fontSize": "15.0px", "fontFamily": "Segoe UI, system-ui, sans-serif", "primaryColor": "#1e293b", "primaryTextColor": "#e2e8f0", "primaryBorderColor": "#38bdf8", "secondaryColor": "#0f172a", "tertiaryColor": "#334155", "lineColor": "#64748b", "textColor": "#e2e8f0"}, "flowchart": {"htmlLabels": true, "curve": "basis", "nodeSpacing": 48, "rankSpacing": 64, "padding": 14, "diagramPadding": 10, "useMaxWidth": true}}}%% flowchart LR BUILD_GRAPH_321CBB04("Graph Build
1135 nodes") class BUILD_GRAPH_321CBB04 module; classDef entry fill:#422006,stroke:#fbbf24,color:#fde68a,stroke-width:1px; classDef api fill:#450a0a,stroke:#f87171,color:#fee2e2,stroke-width:1px; classDef async fill:#2e1065,stroke:#a78bfa,color:#ede9fe,stroke-width:1px; classDef klass fill:#064e3b,stroke:#34d399,color:#d1fae5,stroke-width:1px; classDef ui fill:#831843,stroke:#f472b6,color:#fce7f3,stroke-width:1px; classDef module fill:#172554,stroke:#60a5fa,color:#dbeafe,stroke-width:1px; classDef test fill:#3f3f46,stroke:#a1a1aa,color:#f4f4f5,stroke-width:1px; classDef concept fill:#292524,stroke:#a8a29e,color:#fafaf9,stroke-dasharray:4 3; classDef function fill:#0f172a,stroke:#38bdf8,color:#e0f2fe,stroke-width:1px;

Architecture Layers

LayerNodesCommunities
Graph Build1135unknown

Core Flow

Graph Build

2. Graph Build

Graph Build groups implementation around webui, test, static, appjs, mostly in tests/test_diarization.py, src/webui/file_mode.py, webui/static/app.js. This section covers 1135 nodes and 3635 internal edges; the diagram shows only representative relationships to stay readable.

%%{init: {"theme": "dark", "themeVariables": {"fontSize": "15.0px", "fontFamily": "Segoe UI, system-ui, sans-serif", "primaryColor": "#1e293b", "primaryTextColor": "#e2e8f0", "primaryBorderColor": "#38bdf8", "secondaryColor": "#0f172a", "tertiaryColor": "#334155", "lineColor": "#64748b", "textColor": "#e2e8f0"}, "flowchart": {"htmlLabels": true, "curve": "basis", "nodeSpacing": 48, "rankSpacing": 64, "padding": 14, "diagramPadding": 10, "useMaxWidth": true}}}%% flowchart LR %% Section: Graph Build (1135 nodes, 3635 edges) subgraph build_graph_src_diarization_py_3d414e45["src/diarization.py"] voice_src_diarization_parse_diarization_result_fee779a5("parse_diarization_result()
src/diarization.py") voice_src_diarization_diarizationresult_23deacab("DiarizationResult
src/diarization.py") voice_src_diarization_coerce_float_c6aa3cd7("_coerce_float()
src/diarization.py") voice_src_diarization_extract_segments_0f8d51c7("_extract_segments()
src/diarization.py") voice_src_diarization_extract_speakers_7b3c4e29("_extract_speakers()
src/diarization.py") voice_src_diarization_attribute_words_c79502e3("attribute_words()
src/diarization.py") voice_src_diarization_attributedword_f85bdf69("AttributedWord
src/diarization.py") voice_src_diarization_speaker_for_word_90127a39("_speaker_for_word()
src/diarization.py") end subgraph build_graph_docker_build_images_sh_d1fa366f["docker/build-images.sh"] voice_docker_build_images_sh_entry_0ecad171("build-images.sh script
docker/build-images.sh") voice_docker_build_images_has_build_targets_dc694092("has_build_targets()
docker/build-images.sh") voice_docker_build_images_has_pyannote_base_targ_2bb13548("has_pyannote_base_target()
docker/build-images.sh") voice_docker_build_images_drop_pyannote_base_tar_f0fc09cf("drop_pyannote_base_target()
docker/build-images.sh") end subgraph build_graph_src_stt_whisper_to_nats_py_af49ab94["src/stt_whisper_to_nats.py"] voice_src_stt_whisper_to_nats_c8363194("stt_whisper_to_nats.py") voice_src_stt_whisper_to_nats_filejobworkerservi_dc6da19a("_process_job()
src/stt_whisper_to_nats.py") end voice_src_webui_server_924f4290("server.py") voice_src_webui_staged_jobs_be4a3261("staged_jobs.py") voice_tests_test_diarization_5d2820f8("test_diarization.py") voice_tests_test_model_transport_modeltransportt_38f3cda7("ModelTransportTests
tests/test_model_transport.py") voice_docker_build_images_sh_entry_0ecad171 -->|calls| voice_docker_build_images_has_build_targets_dc694092 voice_docker_build_images_sh_entry_0ecad171 -->|calls| voice_docker_build_images_has_pyannote_base_targ_2bb13548 voice_docker_build_images_sh_entry_0ecad171 -->|calls| voice_docker_build_images_drop_pyannote_base_tar_f0fc09cf voice_src_diarization_parse_diarization_result_fee779a5 -->|calls| voice_src_diarization_diarizationresult_23deacab voice_src_diarization_parse_diarization_result_fee779a5 -->|calls| voice_src_diarization_coerce_float_c6aa3cd7 voice_src_diarization_parse_diarization_result_fee779a5 -->|calls| voice_src_diarization_extract_segments_0f8d51c7 voice_src_diarization_parse_diarization_result_fee779a5 -->|calls| voice_src_diarization_extract_speakers_7b3c4e29 voice_src_diarization_attribute_words_c79502e3 -->|calls| voice_src_diarization_attributedword_f85bdf69 voice_src_diarization_attribute_words_c79502e3 -->|calls| voice_src_diarization_speaker_for_word_90127a39 voice_src_diarization_extract_segments_0f8d51c7 -->|calls| voice_src_diarization_coerce_float_c6aa3cd7 voice_src_stt_whisper_to_nats_filejobworkerservi_dc6da19a -->|calls| voice_src_diarization_parse_diarization_result_fee779a5 voice_src_stt_whisper_to_nats_filejobworkerservi_dc6da19a -->|calls| voice_src_diarization_attribute_words_c79502e3 voice_src_stt_whisper_to_nats_c8363194 -->|imports| voice_src_diarization_attribute_words_c79502e3 voice_src_stt_whisper_to_nats_c8363194 -->|imports| voice_src_diarization_parse_diarization_result_fee779a5 voice_src_webui_staged_jobs_be4a3261 -->|imports| voice_src_diarization_attribute_words_c79502e3 voice_src_webui_staged_jobs_be4a3261 -->|imports| voice_src_diarization_parse_diarization_result_fee779a5 voice_tests_test_diarization_5d2820f8 -->|imports| voice_src_webui_server_924f4290 voice_tests_test_diarization_5d2820f8 -->|imports| voice_src_webui_staged_jobs_be4a3261 voice_tests_test_diarization_5d2820f8 -->|imports| voice_src_stt_whisper_to_nats_c8363194 voice_tests_test_diarization_5d2820f8 -->|imports| voice_src_diarization_attribute_words_c79502e3 voice_tests_test_diarization_5d2820f8 -->|imports| voice_src_diarization_parse_diarization_result_fee779a5 %% Omitted for readability: 1117 nodes, 0 edges class voice_src_diarization_parse_diarization_result_fee779a5 function; class voice_src_diarization_diarizationresult_23deacab klass; class voice_src_diarization_coerce_float_c6aa3cd7 function; class voice_src_diarization_extract_segments_0f8d51c7 function; class voice_src_diarization_extract_speakers_7b3c4e29 function; class voice_src_diarization_attribute_words_c79502e3 function; class voice_src_diarization_attributedword_f85bdf69 klass; class voice_src_diarization_speaker_for_word_90127a39 function; class voice_docker_build_images_sh_entry_0ecad171 function; class voice_docker_build_images_has_build_targets_dc694092 function; class voice_docker_build_images_has_pyannote_base_targ_2bb13548 function; class voice_docker_build_images_drop_pyannote_base_tar_f0fc09cf function; class voice_src_stt_whisper_to_nats_c8363194 module; class voice_src_stt_whisper_to_nats_filejobworkerservi_dc6da19a function; class voice_src_webui_server_924f4290 module; class voice_src_webui_staged_jobs_be4a3261 module; class voice_tests_test_diarization_5d2820f8 test; class voice_tests_test_model_transport_modeltransportt_38f3cda7 test; classDef entry fill:#422006,stroke:#fbbf24,color:#fde68a,stroke-width:1px; classDef api fill:#450a0a,stroke:#f87171,color:#fee2e2,stroke-width:1px; classDef async fill:#2e1065,stroke:#a78bfa,color:#ede9fe,stroke-width:1px; classDef klass fill:#064e3b,stroke:#34d399,color:#d1fae5,stroke-width:1px; classDef ui fill:#831843,stroke:#f472b6,color:#fce7f3,stroke-width:1px; classDef module fill:#172554,stroke:#60a5fa,color:#dbeafe,stroke-width:1px; classDef test fill:#3f3f46,stroke:#a1a1aa,color:#f4f4f5,stroke-width:1px; classDef concept fill:#292524,stroke:#a8a29e,color:#fafaf9,stroke-dasharray:4 3; classDef function fill:#0f172a,stroke:#38bdf8,color:#e0f2fe,stroke-width:1px;

Call Details

# Node Type Caller Callees Description
1 build-images.sh
docker/build-images.sh
Function External entry / no inbound edge No direct outbound edge build-images.sh node in docker/build-images.sh.
2 build-images.sh script
docker/build-images.sh
Function External entry / no inbound edge drop_pyannote_base_target()
docker/build-images.sh
has_build_targets()
docker/build-images.sh
has_pyannote_base_target()
docker/build-images.sh
build-images.sh script node in docker/build-images.sh.
3 REGISTRY_HOST
docker/build-images.sh
Class External entry / no inbound edge No direct outbound edge REGISTRY_HOST node in docker/build-images.sh.
4 PYANNOTE_BASE_TAG
docker/build-images.sh
Class External entry / no inbound edge No direct outbound edge PYANNOTE_BASE_TAG node in docker/build-images.sh.
5 OTEL_RESOURCE_ATTRIBUTES
docker/build-images.sh
Class External entry / no inbound edge No direct outbound edge OTEL_RESOURCE_ATTRIBUTES node in docker/build-images.sh.
6 has_build_targets()
docker/build-images.sh
Function build-images.sh script
docker/build-images.sh
No direct outbound edge has_build_targets() node in docker/build-images.sh.
7 has_pyannote_base_target()
docker/build-images.sh
Function build-images.sh script
docker/build-images.sh
No direct outbound edge has_pyannote_base_target() node in docker/build-images.sh.
8 drop_pyannote_base_target()
docker/build-images.sh
Function build-images.sh script
docker/build-images.sh
No direct outbound edge drop_pyannote_base_target() node in docker/build-images.sh.
9 src/__init__.py
src/__init__.py
Module External entry / no inbound edge No direct outbound edge Module file in src/__init__.py.
10 diarization.py
src/diarization.py
Module diarization_syntax.py
src/diarization_syntax.py
staged_jobs.py
src/webui/staged_jobs.py
stt_whisper_to_nats.py
src/stt_whisper_to_nats.py
+2 more
aiohttp
asyncio
dataclasses
+10 more
Module file in src/diarization.py.
11 DiarizationSegment
src/diarization.py
Class _extract_segments()
src/diarization.py
DiarizationHelpersTest
tests/test_diarization.py
test_attribute_words_prefers_midpoint_then_overlap()
tests/test_diarization.py
+1 more
No direct outbound edge DiarizationSegment node in src/diarization.py.
12 DiarizationResult
src/diarization.py
Class parse_diarization_result()
src/diarization.py
No direct outbound edge DiarizationResult node in src/diarization.py.
13 AttributedWord
src/diarization.py
Class _has_lexical_words()
src/diarization_syntax.py
_sentence_owner()
src/diarization_syntax.py
_split_sentences()
src/diarization_syntax.py
+5 more
No direct outbound edge AttributedWord node in src/diarization.py.
14 SpeakerTurn
src/diarization.py
Class build_speaker_turns()
src/diarization.py
diarization_syntax.py
src/diarization_syntax.py
SyntaxPostprocessResult
src/diarization_syntax.py
No direct outbound edge SpeakerTurn node in src/diarization.py.
15 parse_diarization_result()
src/diarization.py
Function _process_job()
src/stt_whisper_to_nats.py
_run_combine()
src/webui/staged_jobs.py
_run_diarize()
src/webui/staged_jobs.py
+4 more
_coerce_float()
src/diarization.py
_extract_segments()
src/diarization.py
_extract_speakers()
src/diarization.py
+1 more
parse_diarization_result() node in src/diarization.py.
16 Any
Class External entry / no inbound edge No direct outbound edge Any node in project.
17 attribute_words()
src/diarization.py
Function _process_job()
src/stt_whisper_to_nats.py
_run_combine()
src/webui/staged_jobs.py
staged_jobs.py
src/webui/staged_jobs.py
+3 more
_speaker_for_word()
src/diarization.py
AttributedWord
src/diarization.py
TimedWord
src/webui/file_mode.py
attribute_words() node in src/diarization.py.
18 build_speaker_turns()
src/diarization.py
Function _process_job()
src/stt_whisper_to_nats.py
_run_combine()
src/webui/staged_jobs.py
apply_syntax_postprocess()
src/diarization_syntax.py
+5 more
_join_text()
src/diarization.py
SpeakerTurn
src/diarization.py
build_speaker_turns() node in src/diarization.py.
19 render_speaker_text()
src/diarization.py
Function _process_job()
src/stt_whisper_to_nats.py
_run_combine()
src/webui/staged_jobs.py
apply_syntax_postprocess()
src/diarization_syntax.py
+5 more
No direct outbound edge render_speaker_text() node in src/diarization.py.
20 diarization_segments_payload()
src/diarization.py
Function _process_job()
src/stt_whisper_to_nats.py
_run_combine()
src/webui/staged_jobs.py
_run_diarize()
src/webui/staged_jobs.py
+2 more
No direct outbound edge diarization_segments_payload() node in src/diarization.py.
21 attributed_words_payload()
src/diarization.py
Function _process_job()
src/stt_whisper_to_nats.py
_run_combine()
src/webui/staged_jobs.py
staged_jobs.py
src/webui/staged_jobs.py
+1 more
No direct outbound edge attributed_words_payload() node in src/diarization.py.
22 speaker_turns_payload()
src/diarization.py
Function _process_job()
src/stt_whisper_to_nats.py
_run_combine()
src/webui/staged_jobs.py
staged_jobs.py
src/webui/staged_jobs.py
+1 more
No direct outbound edge speaker_turns_payload() node in src/diarization.py.
23 diarize_http_json()
src/diarization.py
Function _run_diarization()
src/stt_whisper_to_nats.py
_run_diarize()
src/webui/staged_jobs.py
staged_jobs.py
src/webui/staged_jobs.py
+13 more
_compact_error_text()
src/diarization.py
_diarization_form_fields()
src/diarization.py
asyncio
+5 more
diarize_http_json() node in src/diarization.py.
24 Path
Class External entry / no inbound edge No direct outbound edge Path node in project.
25 Event
Class External entry / no inbound edge No direct outbound edge Event node in project.
26 diarization_backend_ready()
src/diarization.py
Function _diarization_backend_status()
src/webui/staged_jobs.py
diarization_backend_status()
src/stt_whisper_to_nats.py
diarization_backend_status()
src/webui/staged_jobs.py
+6 more
_compact_error_text()
src/diarization.py
diarization http failure()
src/diarization.py
experimental not configured()
src/diarization.py
+3 more
diarization_backend_ready() node in src/diarization.py.
27 _compact_error_text()
src/diarization.py
Function diarization http failure()
src/diarization.py
diarization_backend_ready()
src/diarization.py
diarize_http_json()
src/diarization.py
+2 more
No direct outbound edge _compact_error_text() node in src/diarization.py.
28 _summarize_diarization_http_failure()
src/diarization.py
Function diarization_backend_ready()
src/diarization.py
diarize_http_json()
src/diarization.py
test_diarization.py
tests/test_diarization.py
+1 more
_compact_error_text()
src/diarization.py
experimental not configured()
src/diarization.py
pipeline not ready()
src/diarization.py
_summarize_diarization_http_failure() node in src/diarization.py.
29 _summarize_experimental_not_configured()
src/diarization.py
Function diarization http failure()
src/diarization.py
diarization_backend_ready()
src/diarization.py
_compact_error_text()
src/diarization.py
Reads, resolves, or persists project configuration.
30 _summarize_pipeline_not_ready()
src/diarization.py
Function diarization http failure()
src/diarization.py
diarization_backend_ready()
src/diarization.py
test_diarization.py
tests/test_diarization.py
+2 more
_compact_error_text()
src/diarization.py
_summarize_pipeline_not_ready() node in src/diarization.py.

Key Files

FileCoverage
tests/test_diarization.py123 nodes
src/webui/file_mode.py104 nodes
webui/static/app.js101 nodes
webui/static/staged_app.js101 nodes
src/pyannote_diarization_server.py64 nodes
src/stt_whisper_to_nats.py56 nodes
src/webui/diagnostics.py53 nodes
src/webui/server.py49 nodes

Design Notes

This section comes from graphify community clustering. Relationship summary: calls x1648, contains x640, references x399, method x348. The diagram prioritizes high-confidence calls or usage relationships; the table keeps the broader node inventory.


Project Statistics

Graph

Nodes1135
Edges3635
Hyperedges0
Communities1
Documented Sections1

Edge Confidence

EXTRACTED3312
INFERRED323
AMBIGUOUS0

voice — Architecture Documentation

Generated: 2026-10-08 00:30 UTC · graphify callflow-html