exam.flyer.us · Speaking with Bingo

What is scored when a Bingo conversation ends

Topic Talk and Free talk do not score pronunciation. Topic Talk gives each answer a short AI comment on grammar and relevance, judged from the transcript only. Free talk gives nothing.

Key facts, origin and limits
Status
Code check, no change made
Web app code
flyer/webs main · 1cd02eb · 19/10/2026
Backend code
flyer/exam dev · 926a69c · 06/09/2026
Checked on
03/11/2026

Prompt (03/11/2026): “check cho anh ở source code, xem tính năng học sinh nói chuyện Freetalk, hoặc Topic based thì khi end conversation sẽ được chấm điểm phát âm thế nào nhé — https://exam.flyer.us/en/real-time-conversation/topic”

Written by an AI assistant in one session by reading the source code. It describes the code, not a product decision.

Limits:

  • Gitea did not respond on 03/11, so commits newer than the two above were not seen. The backend checkout is the oldest part (06/09).
  • Production data was not checked: the read replica has been unreachable from outside AWS since 25/10. The Bingo speaking data page (12/10) showed these comments on the website only, on about 66% of answers, since 10/04/2026.
  • The mobile app code was not read.
  • An unreleased branch (feat/bingo-companion, 31cc510, 02/11) adds a pronunciation notebook to Topic Talk. It compares the transcript with the expected sentence, so it also works from text. Not deployed.

1At a glance

ModeAt the end
Topic Talk
/real-time-conversation/topic
Pronunciation not scored
Each student answer gets a short label (“Great job! 🎉”) and a “Click to view feedback” comment. No session score.
Free talk v1 · turn by turn
/real-time-conversation/call
Pronunciation not scored
Nothing
Free talk v2 · live voice, 5 min
/real-time-conversation/free-talk
Pronunciation not scored
Nothing. Bingo may say the correct form out loud during the call.

2Topic Talk, step by step

  1. Speech becomes text. The recording goes to speech-to-text, which returns plain text only.
    record/index.tsx:142 · handlers.go:1635
  2. Only the text goes to Bingo. The audio is uploaded afterwards, for playback only.
    helper/index.ts:156 · routes.go:61 /call-ai/{sessionId}
  3. An AI model comments on the text. Model inworld/student-grading-bingo-talk gets the topic, Bingo's question and the student's answer. It runs only when the session has a topic, so never in Free talk.
    rest/handlers.go:1510 condition · :1541 prompt
  4. Saved on the student's message as feedback {short, detail}.
    rest/handlers.go:1610 · aiconversation.go:123
  5. The session ends when all learning goals are done, time runs out, or the student presses Finish. The session is marked isCompleted: true and the messages reload.
    conversation/index.tsx:193 time up · :427 Finish · :578 all goals done · useBingoTopic.ts:289
  6. The comments appear only now, on the student's own messages.
    Message.tsx:85
Can be better! 🤔
I like play football with my friend
Hide feedback
Nice topic! Try: “I like playing football with my friends because it is fun.” Add a reason with “because…”.

Illustration of the layout. The wording is generated per answer.

FieldWhat the prompt asks for
shortMax 5 words with emoji: “Great job! 🎉”, “Good! 👍”, “Can be better! 🤔”, “Almost there! 💪”, “Perfect! ❤️”
detailCorrect grammar and on topic → praise. Otherwise → what to improve plus a better sentence. Tips: adjectives, reasons (“because…”), feelings (“I love…”).

3Free talk

VersionWhat happens at the end
v1 · turn by turnCall ends. No comment step: the session has no topic.index.tsx:491
v2 · live voice (Inworld)Call ends, or stops at 5:00. Transcript and recording are saved. Nothing is graded or shown.free-talk/index.tsx:241 · free_talk_handlers.go:339

The student picks v1 or v2 after tapping call. The “Free talk” button on the Topic page opens /real-time-conversation/call.

4Why pronunciation cannot be judged today

5Where FLYER already scores pronunciation

FeatureHow
IELTS SpeakingSpeechace / Azure score each sound of the recordingspeech.go:357 · teacher_activities.go:248
MY NOTEBOOK
/practice-words
Weak words go to learner_mistake_words with a score per soundactivities.go:185

Topic Talk already uploads each answer's audio (step 2), so the same scoring service could be pointed at it.