Skip to content

Use cases · Audio

Audio intelligence for critical industries.

Earnings calls, claim calls, consultations, radio, and phone lines go in. Typed records come out, each field with the words it rests on.

bem returns6.1 s

company
Alphabet
quarter
Q3
revenue_growth_yoy_pct
25
annual_revenue_run_rate
half a trillion dollar
search_query_growth
highest it's been in the last five years
google_cloud_revenue_growth_pct
103
cloud_growth_driver
AI infrastructure and solutions
capacity_plan
bring more capacity online to meet this long-term demand

0:54 / 0:548 of 8 fields

Alphabet Q3 2026 earnings call, Sundar Pichai, 0:54 (Alphabet Investor Relations). The record is a bem run on it. bem is not affiliated with or endorsed by Alphabet.

01Critical industries

Earnings calls, claims, consultations, and radio, read as they play.

Four recordings, four kinds of record. Each tape runs as you reach it, with the sound off until you ask for it. The words a field rests on turn blue as they are said, and the field's row lights up. Press a row to hear the words behind it.

01Earnings callInvestment research, investor relations

Earnings call, as broadcast

0:00 / 1:28

A CFO reads out the quarter. Eleven figures come back as fields.

Alphabet's CFO goes through the third quarter in under a minute and a half: revenue, costs, expenses, operating income, and margin, each with its change on the year. bem returns every figure as a number in its own field, with a decrease as a negative.

The schema asks for

  • quarters_of_double_digit_growth
  • consolidated_revenue_usd_bn
  • revenue_growth_pct
  • cost_of_revenue_usd_bn
  • traffic_acquisition_costs_usd_bn
  • operating_expenses_usd_bn
  • rd_expense_growth_pct
  • ga_expense_change_pct
  • operating_income_usd_bn
  • operating_income_growth_pct
  • operating_margin_pct
  • the words each one rests on

What it feedsA model that is updated when the call ends, and a record of what management said to set against the next quarter.

Alphabet's Q3 2026 earnings call, the CFO's results: 1:28 of a call of an hour, from Alphabet's own upload. The tape prints the words bem gave as evidence. bem is not affiliated with or endorsed by Alphabet.Alphabet Investor Relations

bem returns6.8 s

fieldvaluethe words it rests on
quarters_of_double_digit_growth13“13th consecutive quarter”
consolidated_revenue_usd_bn127.6“$127.6 billion”
revenue_growth_pct25“25%”
cost_of_revenue_usd_bn51.4“$51.4 billion”
traffic_acquisition_costs_usd_bn16.4“$16.4 billion”
operating_expenses_usd_bn35.6“$35.6 billion”
rd_expense_growth_pct36“36%”
ga_expense_change_pct-17“decreased 17%”
operating_income_usd_bn40.6“$40.6 billion”
operating_income_growth_pct30“30%”
operating_margin_pct31.8

Recorded bem run, one Extract function. Not every field is shown. The words on the tape are the ones bem gave as evidence.

02Claim intakeInsurance carriers, claims administrators

Generated call

0:00 / 1:21

A roadside call becomes the first notice of loss.

A driver reports being hit from behind, twenty minutes after it happened. In 81 seconds the call covers the policy, the place, the other driver, the police report, and the damage. bem returns the claim record, with the words behind every field.

The schema asks for

  • policy_number
  • policyholder
  • loss_type
  • time_of_loss
  • location
  • anyone_injured
  • other_driver
  • other_vehicle
  • other_plate
  • other_insurer
  • police_report_number
  • vehicle_drivable
  • damage
  • claim_number
  • next_step
  • the words each one rests on

What it feedsThe claim file, open before the caller hangs up: the coverage check, the repair booking, and the first fraud screen.

No real claim call is public, so this one was written and voiced for this page (text-to-speech voices, on a telephone band) and can be played in full. The record is what bem returned for it.

bem returns8.0 s

fieldvaluethe words it rests on
policy_numberNM-447-2190“NM-447-2190”
policyholderMr. Okafor“Mr. Okafor”
loss_typerear-ended“rear-ended”
time_of_loss5:40“540”
locationRoute 9 at the light by Maple Avenue“Route 9 at the light by Maple Avenue”
anyone_injuredfalse“we're both okay”
other_driverLinda Marsh“Linda Marsh”
other_vehiclegray pickup“gray pickup”
other_plateKTR-8814“KTR-8814”
other_insurerKestrel Insurance“Kestrel Insurance”
police_report_number26-11479“26-11479”
vehicle_drivabletrue“it drives”
damageThe trunk won't close, and a taillight is out“The trunk won't close, and a taillight is out”
claim_numberCL-773-052“CL-773-052”
next_stepAn adjuster will call you within one business day“An adjuster will call you within one business day”

Recorded bem run, one Extract function. Every field is shown. The words on the tape are the transcript bem returned with it.

03ConsultationProviders, telehealth, clinical documentation

Mock consultation, pauses shortened

0:00 / 2:20

A history told out of order becomes the fields a clinician reads first.

A video consultation about lips that swelled after a meal. The patient is unsure of the times and of what she takes. bem returns what was eaten and when, how fast the swelling came on, whether her breathing is affected, and her medicines and allergies.

The schema asks for

  • suspected_trigger
  • time_eaten
  • time_to_swelling
  • swelling_getting_worse
  • difficulty_breathing
  • chest_tightness
  • history_of_asthma
  • current_medication
  • other_inhalers
  • antihistamine_use
  • known_allergies
  • the words each one rests on

What it feedsThe draft note for the clinician to check and sign, and the medicine and allergy lists on the record.

Two passages of a mock primary-care consultation of 8:30, with a practising clinician and an actor as the patient, from the PriMock57 corpus by Babylon Health. Long pauses were shortened. The tape prints the words bem gave as evidence.PriMock57, CC BY 4.0

bem returns11.4 s

fieldvaluethe words it rests on
suspected_triggerprawn soup“prawn soup”
time_eatenaround seven“around seven”
time_to_swellinghalf an hour“half an hour”
swelling_getting_worsetrue“getting worse”
difficulty_breathingtrue“can't breathe that well”
chest_tightnessunsure“I'm not sure”
history_of_asthmatrue“generally have asthma”
current_medicationSalbutamol inhalers“Salbutamol inhalers”
other_inhalersno“No”
antihistamine_usenot sure which ones“I don't know which ones”
known_allergiespeanut allergy“peanut allergy”

Recorded bem run, one Extract function. Not every field is shown. The words on the tape are the ones bem gave as evidence.

04Tower tapeAviation safety, incident review

FAA recording, as published

0:00 / 2:28

Two and a half minutes of radio become the incident record.

New York approach control, 15 January 2009. US Airways 1549 reports a bird strike after take-off, is offered runways at two airports, and comes down on the Hudson. Everyone on board survived. The radio is narrow, clipped, and shared with other aircraft. bem returns what was offered and what the crew answered.

The schema asks for

  • nature_of_emergency
  • engines_affected
  • first_intention
  • laguardia_runway_31_response
  • laguardia_runway_4_response
  • alternate_airport_requested
  • teterboro_runway_offered
  • teterboro_response
  • final_stated_intention
  • radar_contact_lost
  • the words each one rests on

What it feedsThe review file: each option offered and each answer, ready to set against the radar track and the flight data.

The first 2:28 of the FAA's recording of New York TRACON, as the FAA published it. It is in the public domain. The tape prints the words bem gave as evidence.FAA accident and incident data

bem returns10.9 s

fieldvaluethe words it rests on
nature_of_emergencybird strike“bird strike”
engines_affectedboth engines“both engines”
first_intentionreturning back towards LaGuardia“returning back towards LaGuardia”
laguardia_runway_31_responseUnable.“Unable.”
laguardia_runway_4_responseI'm not sure we can make any runway“I'm not sure we can make any runway”
alternate_airport_requestedTeterboro“Teterboro”
teterboro_runway_offeredrunway 1“runway 1”
teterboro_responseWe can't do it.“We can't do it.”
final_stated_intentionWe're going to be in the Hudson.“We're going to be in the Hudson.”
radar_contact_losttrue“radar contact is lost”

Recorded bem run, one Extract function. Not every field is shown. The words on the tape are the ones bem gave as evidence.

02Contact centers

Phone lines: the wrap-up form and the quality check, from the call.

Three real calls to a bank's phone line. The first becomes the form the agent would have typed. The other two are checked against what the agent should have done, and one of them is the kind a sample misses: it sounds fine, and the booking is wrong.

05After-call workRetail banking, credit unions

Real call, pauses shortened

0:00 / 1:19

A transfer request becomes the form the agent would have typed.

The caller wants $122 moved from checking to savings. The agent takes the amount and the two accounts, then explains when the money will arrive and how to speed it up. bem returns the form, with the words each field rests on.

The schema asks for

  • caller_name
  • agent_name
  • source_account
  • destination_account
  • amount_usd
  • outcome
  • the words each one rests on

What it feedsThe transfer ticket and the note on the customer's record, with nothing left for the agent to type once the call ends.

A call to a bank's phone line, 1:54 as recorded, from the HarperValleyBank corpus by Gridspace and Stanford. Long pauses were shortened.HarperValleyBank corpus, CC BY 4.0

bem returns6.8 s

fieldvaluethe words it rests on
caller_nameDavid Johnson“David Johnson”
agent_nameMichael“Michael”
source_accountchecking account“checking account”
destination_accountsavings account“savings account”
amount_usd122“$122”
outcometransferred $122 from checking to savings“$122 has been transferred from your checking account to your savings account”

Recorded bem run, one Extract function. Every field is shown. The words on the tape are the transcript bem returned with it.

06Read-back checkQuality and compliance teams

Real call, pauses shortened

0:00 / 0:27

The caller asked for 3:30. The agent booked 2:30.

Nothing in this call sounds wrong. The agent is polite, follows the script, and confirms the appointment. bem is asked for the time the caller wanted and the time the agent read back, and whether they match. They do not. The form the agent filled in for this call says 2:30.

The schema asks for

  • caller_name
  • agent_name
  • appointment_day
  • time_caller_asked_for
  • time_agent_confirmed
  • read_back_matches_request
  • the words each one rests on

What it feedsA supervisor's queue the same day, before the customer arrives an hour after the slot that was booked.

A call to a bank's phone line, 0:53 as recorded, from the HarperValleyBank corpus by Gridspace and Stanford. Long pauses were shortened.HarperValleyBank corpus, CC BY 4.0

bem returns4.1 s

fieldvaluethe words it rests on
caller_nameLinda Miller“Linda Miller”
agent_nameDavid“David”
appointment_dayTuesday“Tuesday”
time_caller_asked_for3:30 PM“3.30 p.m.”
time_agent_confirmed2:30 PM“2.30 p.m.”
read_back_matches_requestfalse“3.30 p.m.”

Recorded bem run, one Extract function. Every field is shown. The words on the tape are the transcript bem returned with it.

07ScorecardQuality teams, outsourced contact centers

Real call, pauses shortened

0:00 / 0:34

A call that skips the greeting, scored against the script.

The agent never says the bank's name or their own, then does everything else right. bem marks those two lines not met, and quotes the agent for the three that are.

The schema asks for

  • greeting_names_the_bank
  • agent_gives_own_name
  • agent_confirms_outcome
  • agent_offers_more_help
  • agent_thanks_caller
  • the words each one rests on

What it feedsThe agent's coaching notes and the client's quality report, built from every call and not a sample.

A call to a bank's phone line, 1:15 as recorded, from the HarperValleyBank corpus by Gridspace and Stanford. Long pauses were shortened.HarperValleyBank corpus, CC BY 4.0

bem returns3.7 s

checkresultthe words it rests on
greeting_names_the_banknot metnothing in the recording
agent_gives_own_namenot metnothing in the recording
agent_confirms_outcomemet“All right, $94 has been transferred from your checking account to your savings account.”
agent_offers_more_helpmet“Is there anything else I can help you with?”
agent_thanks_callermet“Thank you for calling. Have a great day.”

Recorded bem run, one Extract function. Every check is shown. The words on the tape are the transcript bem returned with it.

03A mixed queue

15 calls of 7 kinds, sorted and filed by one workflow.

A phone line does not take one kind of call. Classify hears what each caller wants and sends the call to the Extract function for that kind of call, so a bill payment comes back as a payment form and a lost card as a card order. Press play on any of them.

  1. 01pay-bill
    caller_name
    David Miller
    payee_company
    Fossil Gas
    payee_address
    930 1st Street Forest Ranch Oregon 60297
    amount_usd
    92
    length 0:41bem took 9.5 s
  2. 02replace-card
    caller_name
    James Williams
    card_type
    credit
    length 0:25bem took 6.8 s
  3. 03transfer-money
    caller_name
    Patricia Miller
    source_account
    checking account
    destination_account
    savings account
    amount_usd
    117
    length 0:48bem took 8.5 s
  4. 04reset-password
    caller_name
    John Garcia
    send_reset_to
    phone
    phone_number
    715-139-0787
    length 0:36bem took 8.5 s
  5. 05check-balance
    caller_name
    Patricia Wilson
    account_type
    checking
    balance_usd
    81
    length 0:32bem took 6.7 s
  6. 06order-checks
    caller_name
    Patricia Johnson
    mailing_address
    733 First Street, Forest Ranch, Oregon, 40779
    length 0:32bem took 8.9 s
  7. 07pay-bill
    caller_name
    Linda Davis
    payee_company
    Fossil Gas
    payee_address
    429 First Street, Forest Ranch, Oregon, 39983
    amount_usd
    143
    length 0:37bem took 7.6 s
  8. 08get-branch-hours
    caller_name
    Elizabeth Jones
    branch_hours
    9.30 a.m. until 5 p.m.
    length 0:23bem took 5.0 s
  9. 09transfer-money
    caller_name
    Mary Smith
    source_account
    savings account
    destination_account
    checking account
    amount_usd
    126
    length 0:39bem took 9.3 s
  10. 10replace-card
    caller_name
    Robert Wilson
    card_type
    credit
    length 0:29bem took 7.1 s
  11. 11reset-password
    caller_name
    Elizabeth Rodriguez
    send_reset_to
    phone
    phone_number
    222-699-0071
    length 0:31bem took 6.9 s
  12. 12transfer-money
    caller_name
    Jennifer Brown
    source_account
    Checking account
    destination_account
    Savings account
    amount_usd
    146
    length 0:54bem took 24.9 s
  13. 13check-balance
    caller_name
    Patricia Williams
    account_type
    checking
    balance_usd
    105
    length 0:28bem took 6.8 s
  14. 14pay-bill
    caller_name
    John Miller
    payee_company
    Fossil Gas
    payee_address
    871 Main Street, Harper Valley, California, 81623
    amount_usd
    103
    length 0:48bem took 10.0 s
  15. 15replace-card
    caller_name
    Michael Rodriguez
    card_type
    credit
    length 0:22bem took 6.3 s

Recorded bem runs: one workflow, called once for each call. Classify sorts the call, and the Extract function for that kind of call fills in its form. The time is the whole workflow for that call. Not every field is shown. The calls are from the HarperValleyBank corpus (CC BY 4.0), with long pauses shortened.

04One workflow

From a recording to a decision, in one workflow.

Extract turns the recording into a record. The rest of the platform takes it from there: match it to your data, apply your policies, and send the result where the work happens.

Input

  • AUDRecordingMP3, WAV, or M4A
  • CRMYour recordsPolicies, customers, accounts

Components

  1. 01ClassifyKnows a claim from an earnings call from a consultation, and sends each the right way.
  2. 02ExtractTranscribes the recording and returns the fields in your schema, with the words behind them.
  3. 03EnrichMatches the caller and the policy to your records.
  4. 04DecideApplies your policies to the record.
  5. 05SendDelivers the result to your system.

Decision

Fast-track the claim

No one was hurt, the car drives, and a police report is on file (26-11479). Policy: a collision with no injury and a report number goes to fast-track repair, with no adjuster visit.

The facts are from the recorded run on the claim call above. The policy and the decision are an example.

05For developers

The audio extraction API: a schema and a file.

Define the record you want once. Then send recordings to the same endpoint you would send a PDF to. The response is your schema, filled in. This is the earnings call above, without the transcript and the evidence it was also asked for.

terminalbem API v3
# 1. Say what you want back
curl -X POST https://api.bem.ai/v3/functions \
  -H "x-api-key: $BEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "functionName": "quarter-results",
    "type": "extract",
    "outputSchemaName": "QuarterResults",
    "outputSchema": {
      "type": "object",
      "properties": {
        "quarters_of_double_digit_growth": {
          "type": "number",
          "description": "How many consecutive quarters, as stated."
        },
        "consolidated_revenue_usd_bn":      { "type": "number" },
        "revenue_growth_pct":               { "type": "number" },
        "cost_of_revenue_usd_bn":           { "type": "number" },
        "traffic_acquisition_costs_usd_bn": { "type": "number" },
        "operating_expenses_usd_bn":        { "type": "number" },
        "rd_expense_growth_pct":            { "type": "number" },
        "ga_expense_change_pct": {
          "type": "number",
          "description": "Negative for a decrease."
        },
        "operating_income_usd_bn":          { "type": "number" },
        "operating_income_growth_pct":      { "type": "number" },
        "operating_margin_pct":             { "type": "number" }
      }
    }
  }'

# 2. Send the recording
curl -X POST https://api.bem.ai/v3/workflows/quarter-results/call \
  -H "x-api-key: $BEM_API_KEY" \
  -F "wait=true" \
  -F "file=@earnings-call.mp3"
responsetransformedContent
{
  "quarters_of_double_digit_growth": 13,
  "consolidated_revenue_usd_bn": 127.6,
  "revenue_growth_pct": 25,
  "cost_of_revenue_usd_bn": 51.4,
  "traffic_acquisition_costs_usd_bn": 16.4,
  "operating_expenses_usd_bn": 35.6,
  "rd_expense_growth_pct": 36,
  "ga_expense_change_pct": -17,
  "operating_income_usd_bn": 40.6,
  "operating_income_growth_pct": 30,
  "operating_margin_pct": 31.8
}

06More to build

More audio use cases, wherever something is already being recorded.

Most recordings are kept for a few months and never heard again. A schema turns them into something a system can act on.

  • Finance

    Investor days and conference talks

    Targets, guidance, and the questions analysts asked, set against what was said the quarter before.

  • Finance

    Central bank and regulator briefings

    Each statement on rates, outlook, and risk, with the words, minutes after the briefing ends.

  • Insurance

    Recorded statements

    Each party's account of the loss, question by question, and the points where two accounts differ.

  • Healthcare

    Dictation and handover

    A clinician's spoken note becomes the fields of the record, ready to check and sign.

  • Legal

    Hearings and depositions

    Who said what, the exhibits named, and the undertakings given, each tied to its place in the recording.

  • Government

    Public meetings

    Motions, votes, and who spoke for how long, from the recording a council already publishes.

  • Defense

    Radio and voice nets

    Who reported what, from where, and when: a log an analyst can check against the recording.

  • Logistics

    Check calls and dispatch

    A driver's check call becomes a status update on the load: location, time of arrival, and any exception.

  • Collections

    Disclosures and promises to pay

    Was the required disclosure read, was the right person on the line, and what was promised, with the words.

  • Sales

    Third-party verification

    Each statement the script requires and each yes the customer gave, checked before the enrollment is accepted.

  • Field service

    Voice notes from the job

    A technician talks through the visit on the way out. The work order is filled in before they reach the truck.

  • Operations

    Voicemail

    Every message sorted by what it asks for, with the callback number and the deadline pulled out.

07Reliability

Audio data you can rely on.

  • 01

    Your schema, not ours

    You decide the fields. The same recording returns a wrap-up form for operations and a scorecard for quality.

  • 02

    The words behind each field

    Ask for the quote and every value comes back with the words it rests on, so a person can check it without replaying the recording.

  • 03

    Every recording, not a sample

    A reviewer can listen to a few recordings a week. A workflow reads all of them, the same way each time.

  • 04

    An audit trail on every run

    What went in, what came out, and which version of the function produced it. Open any result and trace it to its recording.

  • 05

    The same workflow as documents

    A recording is one more input. Classify, Enrich, Decide, and Send work on it exactly as they do on a PDF.

  • 06

    Priced per call

    A recording costs the same per function call as any other file. There is no per-minute meter.

08Questions

Questions about audio intelligence.

What is audio intelligence?

Audio intelligence is turning recordings into structured data a system can act on: who spoke, what was said, what was agreed, and what should happen next. With bem you define the record you want as a JSON schema, send the recording, and get that record back with an audit trail on the run.

What kinds of audio can bem read?

Any recording a person could listen to and take notes from. The examples on this page are an earnings call, an insurance claim call, a medical consultation, an air traffic control tape, and calls to a bank's phone line. The same approach covers voicemail, dictation, hearings, public meetings, and radio.

Which audio formats and file sizes does bem accept?

MP3, WAV, and M4A. A workflow call accepts files up to 50 MB each, sent as a multipart upload or as base64 JSON. The audio track of an MP4 or MOV video is read the same way.

Does bem transcribe the recording?

Yes. Speech is transcribed before extraction, and the record is filled in from what was said. If you want the transcript itself, ask for it in your schema.

How is this different from a transcription service?

A transcription service returns the words. bem returns the record: the figures from an earnings call as numbers, a claim as a first notice of loss, a call scored against your checks. The words come with it, as the evidence for each field.

Can bem score calls against our own quality scorecard?

Yes. Each line of your scorecard is a field in the schema, with a description of what counts as meeting it. Ask for the agent's words as well and every line that is met comes back with its quote. One of the calls on this page is scored that way.

How does it handle a queue with many kinds of recording?

A Classify function sorts each recording by what it is, and sends it to the Extract function for that kind. The queue on this page is 15 calls of 7 kinds, filed by one workflow.

How long does it take to process a recording?

In the recorded runs on this page, a single Extract function took between 3.7 and 12.7 seconds on recordings of 27 seconds to two and a half minutes. Each example shows the time its run took.

How is audio priced?

Per function call, the same as any other file. There is no per-minute meter, and the first 100 function calls are free.

Send your first recording.

The first 100 function calls are free. Pricing is per task, not per token or page. Pay as you go, with no lock-in.