Skip to content

OpenInterviewer 5.1.0

Choose a tag to compare

@linxule linxule released this 08 Oct 23:26
e4063d7

OpenInterviewer 5.1.0

Participants can now take part in their own language and speak their answers,
and a study's transcripts can be exported as one Markdown file. Prompted by
@8888oukaouka-spec's fork; see
ACKNOWLEDGMENTS.md.

Interview languages

A study may offer English, Simplified Chinese, French, Japanese, Korean and
Spanish (Interview Languages). With more than one, the consent page opens
with a language choice preselected from the participant's browser. The consent
text, data notice, interview screens and thank-you screen then use that
language, and the interviewer conducts the whole interview in it.

  • Researchers write the consent text (and optionally the thank-you text) for
    each language; a blank one is generated in that language.
  • Consent is bound to the language read: the server hashes that language's
    consent text, and every later request names the same language or is
    refused. Each saved interview records its language.
  • Analysis is written in English, with quotations kept verbatim in the
    participant's language. A per-installation analysis language is planned.
  • The fixed participant text was drafted with AI assistance and reviewed by
    three other models (review record);
    it is not a certified translation.
  • Studies without the setting behave exactly as before.
    (#88)

Voice input

A study may let participants speak an answer (Voice Input). The text
appears in the answer box to check and edit; nothing is sent automatically.
The consent notice names who turns speech into text.

  • Transcribed by this installation: up to 60 seconds per recording,
    converted in the browser to 16 kHz WAV and transcribed once by Cloudflare
    Workers AI (@cf/openai/whisper-large-v3-turbo). On Cloudflare the
    installation's new AI binding is used directly, never through AI Gateway;
    on Node set CLOUDFLARE_WORKERS_AI_ACCOUNT_ID and
    CLOUDFLARE_WORKERS_AI_TOKEN. OpenInterviewer does not store or log the
    recording or its text, and the consent line promises only that the study
    does not keep it (Cloudflare's terms rule out training but state no
    retention period). Each recording is admitted like an interview turn.
  • The browser's own dictation: Chrome uses Google and Safari Apple, as
    the notice says. Use it only where your ethics approval allows.
  • Transcription by the installation is not offered on the hosted service.
    (#89)

Transcript export

Export transcripts (.md) downloads one Markdown file with every saved
transcript of a study. Transcript text is quoted so it cannot imitate the
file's own structure, and each interview lists what its participant was told
about the AI, the language the participant chose and whether voice input
was offered. The ZIP's per-interview Markdown is quoted the same way and
names the language too.
(#87, #90)

Fixed

  • Deleting a study from the study list on Cloudflare failed with "Invalid
    deletion confirmation." for every study. The list deletes a study without
    interviews with a bodyless request, which OpenNext delivers to the route as
    an empty body rather than none. An empty body is now treated as no body; a
    non-empty one must still be a complete confirmation. Studies with
    interviews were unaffected (they are deleted from the study's settings with
    an explicit confirmation). (#90)

Upgrade notes

  • Cloudflare: npm run setup:cloudflare -- update deploys the new
    template, which adds the Workers AI binding. Unused, it costs nothing;
    transcription is billed by Cloudflare per audio minute after the free daily
    allowance. No schema migration.
  • Node: optional CLOUDFLARE_WORKERS_AI_ACCOUNT_ID and
    CLOUDFLARE_WORKERS_AI_TOKEN for voice transcription.
  • Rolling back to 5.0.x: studies saved with interview languages or voice
    input are refused by the older validator (fail-closed). Do not roll back
    while such a study is collecting; other studies roll back as a compatible
    redeploy.

Verification

npm run check:cloudflare (20 lanes) on the release commit. On staging: a
paid smoke of Workers AI transcription (one synthetic clip per language, all
six transcribed as said apart from Chinese punctuation, plus a full 60-second
clip and an oversize refusal), and a browser walk-through of a synthetic
English and Japanese study through consent, the microphone, the interview, the
save and the Markdown export. The language and
voice changes had a pre-release review (Kimi; the Codex lane stalled and was
cancelled), with its findings fixed or answered in the pull requests.