How it works
This archive aims to make all its work traceable. Every story can be followed back to an exact stretch of an exact recording. Every judgment the software makes is saved with the AI model, the instructions (prompt), and the scoring guide (rubric) that produced it. Every correction a person makes is stored separately, and later runs of the software never overwrite it. This page explains what each step does and where it falls short.
1. Where the recordings come from
The source is a collection that a member of the public uploaded to the Internet Archive, Art Bell Ghost To Ghost AM 1993 2013 (identifier ArtBellGhostToGhostAM19932013). It is a single ZIP file of 19 MP3 recordings, labeled by year. The uploader says the recordings were gathered from an earlier fan site, with advertisements and most music removed, and that “not all the audio files were perfectly edited.”
The project downloaded the ZIP file once and confirmed that it matched the file fingerprint the Internet Archive lists for it (MD5). It then copied each MP3 out of the ZIP byte for byte and confirmed each copy with the ZIP's built-in error check (CRC). Finally, it recorded a file fingerprint for each MP3 (SHA-256) and made the file read-only. The original audio is never changed.
The archive holds 19 recordings (55.2 hours) from 1993 to 2013. Art Bell did not host Ghost to Ghost in 2002, 2008, 2009, 2011, or 2012. Others did, such as George Noory, so those years are not part of this archive.
The project checked a recording of the 2002 show and left it out. It comes from a YouTube livestream (Listening to Ghost to Ghost 2002 | Come Grab Some Popcorn!), and the host heard on air is George Noory (filling in for Art Bell). It stays on the project's private list of recordings, but it is not transcribed, split into stories, or shown here.
The file names give only a year. The archive gives a broadcast date only when there is evidence for it: something said on air (“This program was originally broadcast October 30th, 1993”), news items read on air, or a listing published elsewhere, which the archive cites. It grades each date as verified, probable, possible, or unknown.
Several recordings are not what the collection's title suggests:
- The 1993 recording is a later “best of” rebroadcast.
- Four recordings from 2000 and 2001 are not Halloween shows.
- The 2013 recording is Art Bell's Dark Matter on Sirius XM, not Coast to Coast AM.
2. Turning speech into text
Speech-recognition software turns each recording into text. It runs on the project's own computer and works through each recording in 10-minute pieces that overlap by 20 seconds. Where two pieces overlap, the software joins them at a moment when neither piece is in the middle of a word. All times refer to the original recording, not to the pieces. (The AI model is OpenAI's Whisper large-v3, run with faster-whisper. Versions: faster-whisper 1.2.1 / ctranslate2 4.8.3.)
The project saves the text exactly as the software wrote it. The software flags passages it is unsure of, phrases it probably made up (such as “Thanks for watching”), and stretches where it got stuck repeating itself. Flagged text is never rewritten.
The project turned off a standard filter after testing it. The filter (Silero voice-activity detection) is meant to skip the parts of a recording where no one is talking. On these recordings of AM radio and telephone calls (48 kbps), it threw away 25 to 45 percent of speech that a listener can clearly understand, often whole minutes of a caller's story. Without the filter, the transcription software picked up that speech. On the 1993 broadcast, the word count rose from 21,098 to 26,028.
3. Who is speaking
The software also tells voices apart, so it can mark which words came from the host and which from a caller. The project's first choice for this job (pyannote 3.1) can be used only with approved access, and that access has not been granted. Instead, the project uses a method that runs on its own computer and combines three clues:
- Voice prints. The software turns each 1.5-second stretch of sound into a set of numbers that describes the voice (ECAPA-TDNN voice embeddings).
- The host's voice. The software sorts similar-sounding stretches into groups. The largest group that is heard throughout the broadcast is taken to be the host.
- The phone line. Callers come in over telephone lines, which carry almost no sound above about 3.4 kHz. The studio microphone does pick up those higher sounds.
When the phone-line clue clearly separates the voices, the software combines it with the voice-print score. It then checks the labels against what is said: “you're on the air” should be the host, and “Hi Art” should be a caller. Labels it is unsure of are marked with “?”. Where one person stops talking and the next begins, the labels on single words are still approximate.
4. Finding the stories
A silence never counts as the place where a story starts or ends. Neither does a change in the speaker label, taken on its own. Instead, an AI language model (prompt segment-v2) reads the transcript in 25-minute stretches that overlap. It divides each stretch into stories and other parts: show openings, breaks, calls with no story, host monologues, and incomplete calls. For every start and end point, it records how sure it is and quotes the words that support its choice.
A caller who describes several separate experiences produces several stories. A connected series of events stays one story. Because the stretches overlap, the software pools the start and end points that each stretch suggests. When they agree, its confidence goes up. When they disagree, its confidence goes down and the point is flagged. The software then makes each cut at the quietest moment between the last word of one part and the first word of the next. That way, every second of a recording belongs to exactly one part.
Of the 853 stories found, the software flagged 468 for a person to check. The analysis step (section 5) makes a second, independent check and flags stories that look incomplete or seem to hold more than one story. Half of all stories run between 2 and 4 minutes, counting the host's introduction and reaction. The median is 3.1 minutes.
The software cuts each story's audio clip from the read-only original recording (using FFmpeg), then checks the clip against the original audio. In the pilot, every clip matched to within 0.1 ms (one ten-thousandth of a second). That proves the cuts are accurate. It does not prove that the start and end points were well chosen. During the pilot, an AI model also reread the transcript around the start and end points of 60 stories to check them. No person has checked them by listening yet; the project's review tool is built for that.
5. Summaries, categories, and scores
An AI language model reads each story. It writes a summary, picks categories and recurring details, and gives scores. It follows a fixed scoring guide (rubric) that has a version number. (Model, then versions of the prompt, rubric, and list of categories: deepseek/deepseek-v4.1-flash · analysis-v1 / scoring-v1 / taxonomy-v1.)
A second AI model then copy-edited the text into plain English (claude-opus-5-5 (Claude Code subagent) · copyedit-v1; claude-sonnet-5-5 (Claude Code subagent) · copyedit-v1; claude-sonnet-5-5 (Claude Code subagent) · copyedit-v2-neutral). It may change only wording. A check rejects any edit that adds or drops a name, place, number, or quotation.
The software checks the model's work before saving it:
- Every category and recurring detail must already be on the project's official list (section 6).
- Caller names and places must appear, word for word, in the transcript.
- Every quote is checked against the transcript.
- Evidence strength can't go above 50 without an outside check, which this project does not do.
Summaries report what the person telling the story said (“the caller says…”). They never present it as established fact.
- Believability (0–100): how credible the story is as told. It weighs whether the person experienced it firsthand or heard about it secondhand, how specific the details are, whether the story is consistent with itself, how easily ordinary explanations fit, and whether the person separates what they experienced from what they concluded.
- Evidence strength (0–100): how much support is present in the story itself that someone could check independently. A caller saying someone else saw it too is a claim, not confirmation.
- Creepiness (0–100): how unsettling the story is to hear. It measures entertainment value.
- Originality (0–100): how much the story stands out from the recurring details common in other stories. It combines the model's judgment with how rare the story's recurring details are in this archive. It stays provisional until the archive is larger.
These scores are rough guides based on editorial judgment. They are not the odds that anything supernatural happened. They never use a caller's tone of voice, emotion, or way of speaking as evidence of honesty.
Each score comes with its reasons, the passages it relies on, the evidence for and against, what is missing, and which points the model inferred rather than found in the transcript. The project tests how consistent the scoring is in two ways: by scoring a sample of stories again, and by comparing the scores with ratings that people enter in the review tool.
6. The list of categories
Categories describe what people report happening. The explanation the person gives (a dead relative, a demon, a time slip, an ordinary cause) is recorded separately. So “I woke up and saw a figure at the foot of the bed” is filed as a bedroom visitor, whether or not the caller believed it was a ghost. When the only support for a category is the person's own explanation, the category is marked.
The list is fixed: only the terms on it can be used. Each change to the list creates a new version, and older analyses keep the version they used.
7. Privacy, rights, and publishing
This is an independent research project. It is not affiliated with Art Bell, Coast to Coast AM, Premiere Networks, or Sirius XM. Copyright in the broadcasts belongs to their rights holders. Being on the Internet Archive does not, by itself, give anyone the right to redistribute them. Each story page plays that story's clip from the broadcast, offered for research and commentary. A clip plays only when two switches are on: one for the whole site and one for that story. Either can be turned off again. The site does not publish word-for-word transcripts.
Callers were private people. The public pages do not show the names they gave on air, or the names of relatives and neighbors they mentioned. The stories here are AI drafts that no person has checked yet. Each one is labeled as a draft and kept out of search engines until it has been checked.
If you hold rights in these broadcasts, called in to one, or are mentioned in a story, you can ask for something to be corrected or removed.
8. Known limitations
- The software has processed all 19 recordings. Some years are missing, and several recordings are rebroadcasts or non-Halloween shows. Because of this, differences between years can suggest a change but can't prove a trend.
- No person has checked any story's start and end points yet. Some clips start or end a little early or late, and some calls hold more than one story.
- The model's output for one story did not pass the software's checks, so that story has no analysis yet.
- The transcripts still contain errors, especially in names, places, and spots where people talk over each other.
- The labels for who is speaking are approximate where one person stops and another starts, and the host sometimes talks over callers.
- A story can start or end only between utterances, the short stretches of continuous speech the software works with. When one long utterance covers the end of one story and the start of the next, the cut lands a few seconds off.
- The scores have not yet been checked against ratings made by people and adjusted to match.
See the data downloads for every number shown on this site.