% Acceptance-target ICASSP 2027 draft grounded only in archived measurements. % Uses the repository's ICASSP 2027 author kit. % Four technical pages plus an optional reference-only page. \documentclass{article} \usepackage{spconf} \usepackage{amsmath,amssymb,graphicx,booktabs,multirow,hyperref,xcolor,float} \hypersetup{hidelinks} \newcommand{\vect}[1]{\boldsymbol{#1}} \newcommand{\G}{\mathrm{G}} \newcommand{\A}{\mathrm{A}} \newcommand{\V}{\mathrm{V}} \setlength{\emergencystretch}{2em} \setcounter{topnumber}{5} \setcounter{dbltopnumber}{5} \renewcommand{\topfraction}{0.95} \renewcommand{\dbltopfraction}{0.95} \renewcommand{\textfraction}{0.05} \renewcommand{\floatpagefraction}{0.75} \renewcommand{\dblfloatpagefraction}{0.75} \title{Does an Omni Model Know When the Wearer Will Speak?\\ A Causal Global--Local Audit of Egocentric Speech Anticipation} \name{Xin Wang, Dingtian Yan, Shengxiang Hu, Changdong Liu, Xiaoju Dai, Li Zhang, Rong Zheng, and Guorun Chen} \address{Shanghai Ideal Information Industry (Group) Co., Ltd., China Telecom} \begin{document} \ninept \maketitle \begin{abstract} We test whether a frozen Omni readout exposes sub-second evidence for forecasting an invisible camera wearer's speech from causal multiparty audio--video. Our 5-Hz model combines 8-s Qwen2.5-Omni context and recent 1-s audio to predict three activity channels at ten 0.2--2.0-s horizons. On EasyCom, a seed-0 screen reaches 81.72\% mAP at 0.2~s and 65.11\% mean mAP, versus 74.20/61.19\% for released EgoSpeak. Wearer offset AP improves by 7.23 points, onset AP by 1.47. Pooled vision adds only 0.29 mean-mAP points. A three-seed causal information audit finds that privileged past visible-person activity adds 4.83 points at 0.2~s and 1.77 mean-mAP points; visibility and delayed activity add little. A separate no-box full-frame screen reaches 82.38/65.54\%, but unmatched training and head capacity prevent visual attribution. Timely evidence access, not semantic floor understanding, remains the supported conclusion. \end{abstract} \begin{keywords} egocentric speech anticipation, multimodal foundation models, causal streaming, voice activity projection, conversational agents \end{keywords} \section{Introduction} \label{sec:intro} Conversational agents must decide not only \emph{what} to say, but also \emph{when} to participate. This decision is particularly asymmetric in an egocentric stream: the camera wearer is normally invisible, yet the model must forecast that wearer's behavior from mixed audio and observations of other people. As Fig.~\ref{fig:task} illustrates, prediction precedes any known turn boundary and excludes media after the decision cutoff. \begin{figure}[H] \centering \includegraphics[width=\columnwidth]{figures/task_overview.pdf} \caption{Task, not an observed event example. At each 5-Hz decision cutoff, only the past audio--video prefix is input; ten future activity states are targets. ENTRY-like and YIELD-like refer to wearer activity transitions, not semantic floor ownership.} \label{fig:task} \end{figure} Voice Activity Projection (VAP) casts turn taking as continuous prediction of future activity \cite{ekstedt2022vap}. EgoSpeak brings this objective to untrimmed first-person video and defines the EasyCom protocol used here \cite{kim2025egospeak,donley2021easycom}. Other work predicts future speakers from synchronized egocentric sensors \cite{serj2024threem}, reconstructs egocentric conversational graphs \cite{jia2024avconv}, or grounds causal multiparty projections in visible face tracks \cite{qi2026muvap}. Those systems establish that neither multiparty audiovisual modeling nor first-person speech initiation is itself a novelty. Our question is narrower: does a general-purpose Omni readout make timely evidence accessible for forecasting the unseen wearer? Qwen2.5-Omni integrates long-form audio and video in a Thinker representation \cite{xu2025qwenomni}. Such integration is attractive for conversational context, but a blockwise state can blur or delay the short acoustic and visual cues needed at 200-ms intervals. We therefore separate an integrated global state $\G$ from explicit recent evidence $\A$ and optional $\V$, and treat their value as an empirical question rather than assuming that a larger backbone solves temporal access. We contribute a cutoff-aligned global--local audit, a bounded Omni stream with observed-tail refresh and recent audio, and a separation of deployable features from an analysis-only visible-activity oracle. Generic pooled or current-frame person features recover little of the available activity signal; timely activity estimation is the next modeling target. \begin{figure}[t] \centering \includegraphics[width=\columnwidth]{figures/system_overview_onecolumn.pdf} \caption{Deployable global--local path and bounded stream. At each 200-ms cutoff, the head fuses the frozen integrated Omni state with explicit recent audio and optional pooled person-crop vision. Completed 2-s payloads are reused; only the observed partial tail is temporarily recomputed. Privileged past-activity audit labels are kept outside this graph and are not inputs.} \label{fig:overview} \end{figure} \section{Method} \label{sec:method} \subsection{Task and Causal Inputs} At cutoff $t_n=0.2n$~s, the model observes only media available by $t_n$ and predicts activity at $t_n+h$, where $h\in\{0.2,0.4,\ldots,2.0\}$~s. Each horizon has three channels in fixed order: background, camera wearer, and aggregate others. Wearer and others may overlap; no output identifies an individual speaker, addressee, or semantic end of turn. The global feature $\vect g_n$ is extracted from frozen Qwen2.5-Omni-3B. We concatenate the final four Thinker readout states and project them to 2048 dimensions. The readout contains both audio and video context; $\G$ is not an audio-free condition. The local audio feature $\vect a_n$ is obtained by cropping the most recent one-second mixed waveform \emph{before} preprocessing, encoding it with the frozen Qwen audio encoder, and averaging valid output tokens. An optional visual feature $\vect v_n$ averages spatial tokens inside provided person boxes, people within each causal frame, and valid frames from the most recent second. It preserves neither identity nor mouth-motion trajectories, and provided boxes do not constitute an online detector. Each enabled local feature is layer-normalized, projected to 256 dimensions, and paired with a validity bit. The trainable head is \begin{equation} \widehat{\vect Y}_{n}= \operatorname{softmax}_{c}F_{\theta} \bigl[\vect g_n;\widetilde{\vect a}_n;m_n^a; \widetilde{\vect v}_n;m_n^v\bigr], \label{eq:fusion} \end{equation} where omitted modalities remove their terms and $F_\theta$ is a layer-normalized MLP with a 30-logit output. We train only the projections and head with the EgoSpeak multi-positive cross-entropy over causal-valid source--horizon pairs. The Omni and modality encoders remain frozen, so this is frozen-backbone adaptation rather than end-to-end training. \subsection{Cutoff-Aligned Streaming} Figure~\ref{fig:overview} uses source-aligned 2-s blocks under an 8-s presentation cap. After warm-up, three completed blocks and the observed current tail are available; span varies with block phase. Completed modality payloads are reused. At each cutoff, the tail is cropped at $t_n$ and queried in a temporary cache, without committing it. Only completed blocks are committed; session or source discontinuities reset caches. This refreshes the logical state at 5~Hz without backfilling earlier rows. \subsection{Visible-Activity Information Audit} To distinguish missing information from ineffective learned vision, we build analysis-only features from transcript-derived \emph{past} activity. At each cutoff, visible non-wearer participants receive two seconds of binary history sampled on the same 5-Hz grid. The preparation fails if its aggregate activity disagrees with the released target. We compare: (i) visibility with activity zeroed, (ii) per-person histories, (iii) identities shuffled while preserving active-person counts at every lag, (iv) histories delayed by one second, and (v) one OR-pooled aggregate-visible history. These conditions never expose future activity, but their speech labels make them privileged diagnostics, not deployable features or upper bounds. \begin{table*}[t] \caption{Measured EasyCom screens (\%). Panel A: deployable models; Panel B: three-seed privileged past-activity audit, which is not deployable. Mean is ten-horizon dense mAP; On/Off are raw wearer endpoint AP, not semantic events. F3 is a no-box, two-frame causal full-frame screen; it and the historical deployable rows are exploratory seed-0 runs with unmatched head/training details. F1 has three seeds. Dashes are unavailable, not zero.} \label{tab:main} \centering \normalsize \renewcommand{\arraystretch}{0.87} \setlength{\tabcolsep}{5.0pt} \begin{tabular}{@{}lccccc@{}} \toprule Method & $\mathrm{mAP}_{.2}\uparrow$ & $\mathrm{WAP}_{.2}\uparrow$ & Mean$\uparrow$ & On$\uparrow$ & Off$\uparrow$ \\\\ \midrule EgoSpeak MiniROADA A+V & 74.204 & 63.750 & 61.193 & 24.491 & 38.024 \\\\ Recent Qwen audio $\A$ & 79.692 & 84.100 & 60.508 & -- & -- \\\\ Omni global $\G$ & 73.446 & 77.867 & 60.849 & -- & -- \\\\ Omni $\G+\A$ & 81.723 & 85.066 & 65.109 & 25.960 & 45.251 \\\\ Omni $\G+\A+$pooled-$\V$ & 82.027 & 85.086 & 65.400 & 26.019 & 45.371 \\\\ No-box full-frame F3 & 82.380 & -- & 65.540 & -- & -- \\\\ Current-frame person set F1 & $81.777{\pm}0.156$ & -- & $64.951{\pm}0.095$ & -- & -- \\\\ Matched-width $\G$ (L2) & -- & -- & -- & -- & -- \\\\ Past-delayed $\A$ (L3) & -- & -- & -- & -- & -- \\\\ Current-state persistence (L4) & -- & -- & -- & -- & -- \\\\ \bottomrule \end{tabular} \par\smallskip \emph{Panel B: privileged past-activity audit (mean $\pm$ sample SD).}\par\smallskip \normalsize \setlength{\tabcolsep}{3.2pt} \begin{tabular}{@{}lccc@{}} \toprule Extra condition & $\mathrm{mAP}_{.2}$ & $\mathrm{WAP}_{.2}$ & Mean \\\\ \midrule None (audio baseline) & $81.869{\pm}.049$ & $85.264{\pm}.110$ & $65.177{\pm}.058$ \\\\ Visibility only & $81.945{\pm}.098$ & $85.200{\pm}.144$ & $65.217{\pm}.048$ \\\\ Activity delayed 1 s & $81.951{\pm}.086$ & $85.270{\pm}.137$ & $65.341{\pm}.051$ \\\\ Shuffled person IDs & $85.917{\pm}.085$ & $85.577{\pm}.246$ & $66.460{\pm}.090$ \\\\ Per-person activity & $86.266{\pm}.182$ & $85.608{\pm}.220$ & $66.660{\pm}.135$ \\\\ Aggregate visible activity & $\mathbf{86.696{\pm}.085}$ & $\mathbf{85.836{\pm}.147}$ & $\mathbf{66.951{\pm}.022}$ \\\\ \bottomrule \end{tabular} \end{table*} \begin{table*}[t] \caption{Chunk and context audit. Panel A is an unmeasured matched T/C matrix: each row pairs $\G$ and $\G+\A$ on common valid cutoffs. Panel B is a separate exploratory seed-0 global-only screen (10 epochs, 8-s cap, 2-FPS video); its rows are not entries in Panel A. Dashes are pending.} \label{tab:stream_context} \centering\normalsize \renewcommand{\arraystretch}{0.87} \setlength{\tabcolsep}{4pt} \begin{tabular}{@{}llccccc@{}} \toprule Group & Refresh / cap & $\G$ mAP & $\G+\A$ mAP & $\Delta$ mAP & $\Delta$ On & $\Delta$ Off \\ \midrule T & Completed-only, 8 s & -- & -- & -- & -- & -- \\ T & Observed-tail, 8 s & -- & -- & -- & -- & -- \\ \midrule C & Tail-aware, 2 s & -- & -- & -- & -- & -- \\ C & Tail-aware, 4 s & -- & -- & -- & -- & -- \\ C & Tail-aware, 6 s & -- & -- & -- & -- & -- \\ C & Tail-aware, 8 s & -- & -- & -- & -- & -- \\ C & Tail-aware, 10 s & -- & -- & -- & -- & -- \\ C & Tail-aware, 12 s & -- & -- & -- & -- & -- \\ \bottomrule \end{tabular} \par\smallskip \emph{Panel B: reported 200-ms chunk screen; dense mAP (\%).}\par\smallskip \begin{tabular}{@{}lccc@{}} \toprule Global feature construction & 0.2-s mAP & Mean mAP & Processor calls \\ \midrule Native 2-s completed hold & 59.62 & 55.19 & 9,539 \\ Non-native 200-ms commits & 67.05 & 57.84 & 95,453 \\ Completed blocks + observed tail & 70.85 & 59.17 & -- \\ \bottomrule \end{tabular} \end{table*} \begin{table}[t] \caption{B result slots: paired within-backbone local-audio gains (unmeasured). MiniCPM requires a matched readout/refresh/history audit before comparison.} \label{tab:backbone} \centering\normalsize \setlength{\tabcolsep}{3pt} \begin{tabular}{@{}lccc@{}} \toprule Backbone & $\G$ & $\G+\A$ & $\Delta$ \\ \midrule Qwen Omni 3B & -- & -- & -- \\ Qwen Omni 7B & -- & -- & -- \\ MiniCPM-o 4.5 & -- & -- & -- \\ \bottomrule \end{tabular} \end{table} \begin{table}[t] \caption{H result slots: predeclared activity slices (unmeasured). Report positive/negative counts and per-session scores; AP is undefined for a pure-negative slice, which instead uses calibrated FPR.} \label{tab:hard_slices} \centering\normalsize \setlength{\tabcolsep}{2.5pt} \begin{tabular}{@{}lccc@{}} \toprule Slice & $N_+/N_-$ & AP & FPR \\ \midrule Wearer onset & -- & -- & -- \\ Wearer offset & -- & -- & -- \\ Other pause (negative) & -- & n/a & -- \\ Overlap (negative) & -- & n/a & -- \\ \bottomrule \end{tabular} \end{table} \begin{table}[t] \caption{S result slots: full-path cost on the same hardware (unmeasured). Include I/O and block transitions; logical 5 Hz is not measured throughput.} \label{tab:efficiency} \centering\normalsize \setlength{\tabcolsep}{3pt} \begin{tabular}{@{}lccc@{}} \toprule Stage & P50 ms & P95 ms & Peak GB \\ \midrule Completed block & -- & -- & -- \\ Observed tail & -- & -- & -- \\ Local path + head & -- & -- & -- \\ Full path & -- & -- & -- \\ \bottomrule \end{tabular} \end{table} \section{Experiments} \label{sec:experiments} \textbf{Data and protocol.} We use EasyCom with the official EgoSpeak split: Sessions~4--12 for training and Sessions~1--3 for testing. Inputs and targets share a 5-Hz grid. Heads are trained for four fixed epochs on all training sessions without test-time checkpoint selection. The deployable feature matrix is an archived single-seed screen; the information audit uses seeds 0, 1, and 2 with an identical fixed recipe. We therefore report standard deviations only for the latter and treat small differences in the former descriptively. \textbf{Metrics.} At each horizon we compute AP for the three activity channels over common causal-valid rows, then average classes to obtain mAP and average all ten horizons to obtain mean mAP. We also report wearer AP at 0.2~s. For endpoint diagnostics, onset AP conditions source rows on the wearer being silent and scores future speech with $p(\mathrm{wearer})$; offset AP conditions on wearer speech and scores future silence with $1-p(\mathrm{wearer})$. These threshold-free quantities average ten horizons. They are not one-event-one- vote detection, semantic ENTRY/YIELD, or evidence of addressee understanding. \textbf{Comparisons.} We evaluate released EgoSpeak MiniROADA A+V; recent audio $\A$; global Omni $\G$; $\G+\A$; and $\G+\A+$pooled-$\V$. A three-seed current-frame frame-set attention screen tests whether a richer person aggregation is already sufficient. Because that screen used Session~12 model selection whereas the historical pooled row did not, their difference is diagnostic, not a matched causal attribution. \textbf{Six pre-specified control families.} We freeze six pending control families: (L) capacity and recency, (T) tail refresh crossed with local audio, (C) six context caps, (B) paired backbone transfer, (H/Q) error slices and timelines, and (S) full-path efficiency. They share the official split and physical cutoffs; the 8-s T/C row reuses one run. The source retains unmeasured hypotheses and falsifiers. \section{Results} \label{sec:results} \subsection{Global Context and Recent Audio Are Complementary} Table~\ref{tab:main} shows that $\A$ is strong at 0.2~s, while $\G$ is slightly stronger when mAP is averaged to 2.0~s. Their fusion is better than $\A$ at every horizon: the mean gain is 4.60 points, with gains of 2.03 at 0.2~s and 4.47 at 2.0~s. It also improves every class when averaged over horizons (+8.72 background, +2.43 wearer, and +2.65 others). Relative to released EgoSpeak, $\G+\A$ improves 0.2-s mAP by 7.52 points and mean mAP by 3.92 points. The endpoint effect is asymmetric: offset AP rises by 7.23 points, while onset AP rises by 1.47. Dense forecasting gains therefore do not imply equal progress at both behavior boundaries. The global-only head has more trainable parameters and a longer context than the local-only head, so this comparison demonstrates predictive complementarity, not that semantic reasoning alone causes the gain. A wider history-matched control is required for a representation-level causal claim. % Retained as a planning aid; illustrative, unmeasured patterns do not belong % in the page-limited submission preview. \iffalse \begin{table*}[t] \caption{Six-group \textbf{illustrative scenario, not measured results}. These are conditional, pre-run interpretations for the pending matrix, not EasyCom scores. $\Delta$ denotes paired mean-mAP change on common valid cutoffs; signs and shape must be replaced by measured values even if contrary to the story. L/T/C/B require seeds 0--2 and per-session reporting.} \label{tab:scenario} \centering \normalsize \renewcommand{\arraystretch}{1.12} \setlength{\tabcolsep}{4.2pt} \begin{tabular}{@{}p{0.095\textwidth}p{0.29\textwidth}p{0.29\textwidth}p{0.235\textwidth}@{}} \toprule Group & Frozen comparison & Illustrative pattern \emph{if observed} & Falsifier / interpretation limit \\ \midrule L1--4 & $\A,\G,\G+\A,\G+\A+\V$; matched-width $\G$; past-delayed local cues; current-state persistence & $\Delta(\G+\A-\G)>0$ after width matching; delayed $\A$ loses near-horizon benefit; persistence does not recover the gain & Width-only or persistence matches fusion, or delay does not hurt: do not attribute gain to timely distinct evidence. \\ \addlinespace[2.5pt] T1--2 & 2-s completed-only vs 200-ms observed-tail refresh, crossed with $\A$ on/off; causal replay and phase audit & Tail helps most without $\A$; local $\A$ still adds at each refresh; future-only media never changes prior readouts & No independent local gain under tail refresh implies redundancy; replay/leakage failure invalidates timing claims. \\ \addlinespace[2.5pt] C1--2 & Genuine 2/4/6/8/10/12-s feature extraction; fixed 1-s $\A$; add $\G$-only at each cap for a window-stability claim & Fused performance plateaus around mid-range caps while $\G$-only remains more cap-sensitive & If long history substitutes for $\A$, local-evidence claim narrows; without C2, no robustness comparison is justified. \\ \addlinespace[2.5pt] B0--2 & Paired $\G$ and $\G+\A$ on Qwen 3B/7B and, after causal interface audit, MiniCPM-o 4.5 & Positive within-backbone paired $\Delta$ on all admissible rows; absolute backbone ranking is not inferred & Failed causal/history match is unsupported, not zero gain; one negative paired row defeats universal transfer. \\ \addlinespace[2.5pt] H1/Q1 & Predefined onset/offset and other-pause/overlap slices; same-horizon, cutoff-marked case selection & Offset gains coexist with hard wearer-onset negatives; examples explain, rather than replace, counted slice statistics & Pure-negative slice AP is undefined; selected examples cannot establish reduced false-entry rate. \\ \addlinespace[2.5pt] S1 & End-to-end p50/p95 latency and peak memory, including I/O, encoding, tail recomputation, local path, and boundaries & A feasible throughput--quality tradeoff can be plotted against 200-ms output cadence & If p95 exceeds cadence, describe logical 5-Hz prediction only, not real-time deployment. \\ \bottomrule \end{tabular} \end{table*} \fi \subsection{Generic Vision Does Not Recover the Available Signal} Adding pooled $\V$ to $\G+\A$ produces only +0.304 points at 0.2~s and +0.291 mean mAP. Its wearer increment is +0.020 at 0.2~s and +0.061 when averaged over horizons; onset/offset changes are +0.059/+0.120. A richer current-frame person-set model is stable across seeds but reaches lower mean mAP than the historical pooled row under a non-matched selection protocol. These results do not support a claim of learned speaker grounding. A separate seed-0 no-box full-frame F3 screen reaches 82.38\% at 0.2~s and 65.54\% mean mAP, versus 81.72/65.11\% for the existing $\G+\A$ row under the same causal-valid dense protocol. F3 adds a two-frame 2-FPS token history and a shared GRU, while head capacity and training batch differ; raw boundary metrics and repeat seeds are unavailable. Thus the +0.66/+0.43-point difference does not isolate visual motion or floor behavior. Table~\ref{tab:main}, panel B, locates the missing information. Aggregate visible activity improves over the audio baseline by 4.826 points at 0.2~s and 1.775 mean-mAP points. Visibility alone changes mean mAP by only +0.040, and one-second-delayed activity by +0.164. Thus availability or extra parameters cannot explain the oracle gain. Per-person activity exceeds shuffled identity by only 0.200 mean-mAP points and is itself 0.291 below the aggregate condition. The current target therefore supports timely visible-floor activity as useful information, but not the necessity of identity continuity. The majority of the oracle's 0.2-s macro gain comes from background and others; wearer AP rises by only 0.572. This is why neither the oracle nor a dense mAP gain establishes fewer false wearer entries. \begin{figure}[t] \centering \fbox{\begin{minipage}[c][18mm][c]{0.94\columnwidth} \centering \textbf{Q1 case slots: examples pending}\\[2pt] Onset / other-pause hard negative \quad|\quad Offset / overlap\\ Show source cutoff, observed activity and same-horizon wearer scores. \end{minipage}} \caption{Reserved H/Q case figure. Select examples by a frozen rule after the slice counts in Table~\ref{tab:hard_slices} are available. No case or behavioral improvement is asserted by this placeholder.} \label{fig:hq_cases} \end{figure} \subsection{Pending Controls and Limits} Tables~\ref{tab:stream_context}--\ref{tab:efficiency} reserve result slots for T/C, B, H, and S; Fig.~\ref{fig:hq_cases} reserves Q cases. Panel B of Table~\ref{tab:stream_context} separately reports a global-only chunk screen: the 200-ms commits beat 2-s hold after startup exclusion but require about ten times as many processor calls across 12 sessions. Freshness and chunk construction both change, and the older tail bank is not extraction-matched; these values do not fill the pending T/C factorial or establish real-time throughput. L requires a trained width-matched global control and past-delayed features on identical valid pairs; T crosses tail refresh with local audio; C re-extracts each causal context cap and pairs it with a global-only run. B compares the within-backbone audio increment only after readout and history audits. H/Q reports slice counts and cutoff-marked examples; S measures full-path latency and memory. The oracle uses privileged labels, provided boxes omit online detection, and aggregate others cannot establish addressee or semantic floor ownership. \subsection{Decision Rules and Reproducibility} The unit of comparison is the same physical cutoff and future target time, not an arbitrary feature row. For every new condition we will archive input-source timestamps, common valid-pair counts, seeds, per-session AP, trainable parameter counts, processor/model revisions, checkpoint hashes, and prediction scores. Frames and horizons are correlated, not independent replicates. We retain the fixed four-epoch recipe for the matched matrix. Any loss weight, threshold, context selection, or case-selection rule is frozen using training-side evidence before looking at Sessions~1--3. Because these test sessions have already informed this research program, even new seed runs remain exploratory rather than restoring an unseen test set. The raw endpoint AP in Table~\ref{tab:main} may motivate a behavioral hypothesis, but an ENTRY/YIELD error-rate claim additionally requires one-event-one-vote attribution with response windows censored at the next other onset and yield windows at the next other offset. Until that competing-risk evaluator passes real-timeline audit, we report only dense forecasting and endpoint anticipation. \section{Conclusion} In this strictly causal audit, frozen Omni context and recent audio improve wearer activity forecasting, especially future speech cessation. Generic pooled vision does not recover the timely visible-activity signal exposed by the analysis-only oracle. Matched controls and censored event evaluation remain necessary before claiming improved floor behavior. \section{Acknowledgment} OpenAI Codex assisted with drafting and figure layout; the authors remain responsible for all experimental claims and final content. \clearpage \bibliographystyle{IEEEbib} \bibliography{references} \end{document}