Voice Message Transcription in WordPress Chat: Voice Notes to Text
Better Messages transcribes voice messages in WordPress chat: anyone in the conversation presses Transcribe on a voice message, or every recording is turned into text as it is sent, and the text shows under the audio for everyone in that conversation. It needs the Voice and Video Messages add-on and one of two providers, the OpenAI Transcription API with your own key, which works on the free version too, or Better Messages Cloud AI, included with the WebSocket license.
A voice note is quick to send and slow to receive. The person it is for may be in a meeting, on a loud train or simply rather read. A transcript lets them read it in a few seconds and come back to the audio only if they need the tone.
What it does not do: video messages get no transcript, transcripts are not found by the message search, and voice messages in end-to-end encrypted conversations cannot be transcribed. Each of these is explained below.
How voice message transcription works#
- A member records a voice message with the Voice and Video Messages add-on and sends it.
- With Enable Transcription on, the voice message shows a Transcribe button to everyone in the conversation.
- Whoever presses it first sends the audio to the provider you chose. The bubble reads Transcribing... while it works.
- The text appears under the voice message, for every member of the conversation, not only the one who pressed.
- The transcript is stored in your WordPress database with the voice file, so a voice message is transcribed once. Everyone who opens it later reads the stored text, and the button no longer shows.
With Auto Transcription on as well, nobody presses anything: each voice message goes to the provider the moment it is sent, and its text follows a few seconds later.
The two providers#
| OpenAI Transcription API | Better Messages Transcription AI | |
|---|---|---|
| Works on | the free and the WebSocket version | the WebSocket version |
| Needs | your OpenAI API key | an active WebSocket license |
| Cost | billed to your OpenAI account | included in the license |
| Settings | the model, gpt-4o-mini-transcribe by default, and an optional prompt | a language code, or automatic detection |
| Languages | those of the model you pick | 99+ languages, detected automatically |
Both need the Voice and Video Messages add-on and PHP 8.1 or newer, the version the AI features of Better Messages run on. Below that, the settings tab says which PHP the site runs and asks for an update.
OpenAI suits a site on the free version, or one that already has an OpenAI account for its AI chat bots or moderation. The model list is read from your account, so any transcription model it has, Whisper included, can be picked. A short prompt such as The audio is most likely in English helps it with accuracy and speed.
Better Messages Transcription AI is part of Better Messages Cloud AI on the WebSocket version. There is no API key, no second account and no separate bill. Leave the language empty for multilingual sites, or set a code such as en, es or de when everyone speaks the same language, which is faster and more accurate.
How to turn on voice transcription#
- Install Better Messages from WordPress.org and the Voice and Video Messages add-on.
- Open WP Admin → Better Messages → Settings → Voice Messages and scroll to Voice Transcription.
- Pick the Transcription Provider. For OpenAI, add your key first under Settings → Integrations → AI Services, the notice on the tab links there. For Better Messages Transcription AI, activate your WebSocket license.
- Turn on Enable Transcription. This is the switch that puts the Transcribe button on voice messages.
- If every voice message should become text, turn on Auto Transcription too.
- For OpenAI, choose the Transcription Model and add a Transcription Prompt if you like. For Better Messages Transcription AI, set the Language or leave it on automatic.
- Save.
Every setting on that tab, with its screen, is in the Voice and Video Messages docs.
On demand or for every voice message#
On demand is the default, and it keeps usage low: the provider is called only when someone wants the text, and only once for each voice message. Members who listen never cause a transcription.
Auto Transcription sends every recording to the provider. Choose it when text matters for every message, such as a site where members often cannot listen, or for accessibility, and expect usage to grow with the number of voice messages sent. On OpenAI that is your bill, on Cloud AI it is part of the license.
AI chat bots use the same provider whatever these two switches say. A bot cannot listen, so a voice message sent to it is transcribed and handed to the model as text, and each bot has its own Voice Input switch for that.
Free and WebSocket versions#
The Voice and Video Messages add-on is a separate plugin that works with both versions. Its prices are on the pricing page.
| Free version | WebSocket version | |
|---|---|---|
| Voice and video messages (add-on) | yes | yes |
| Transcription with the OpenAI Transcription API | yes | yes |
| Transcription with Better Messages Transcription AI | no | yes |
| Transcribe button and Auto Transcription | yes | yes |
| Transcript stored with the voice message | yes | yes |
| Transcript sent to members instantly, encrypted through the relay | no | yes |
When transcription helps#
| Site | Why the text helps |
|---|---|
| Coaching and consulting | A client reads the advice of a two-minute voice note again before the next session, without replaying it |
| Courses and LMS | A student gets a spoken answer from the instructor and reads it while revising, see chat for LMS sites |
| Marketplaces | A vendor describes a product by voice, and the buyer copies the details from the text, see marketplace chat |
| Accessibility | Members who are deaf or hard of hearing read every voice message, with Auto Transcription on |
| Busy or noisy places | Members read a voice note where they cannot play sound |
A transcript is in the language that was spoken. AI message translation translates text messages into each member's language, and it leaves voice messages and their transcripts as they are.
The callback of Cloud AI#
Better Messages Transcription AI answers within the request when it can. A longer recording is finished in the background, and the cloud sends the text back to your site at:
https://yoursite.com/wp-json/better-messages/v1/ai/task-result
If a firewall or security plugin blocks that address, allow it. The Test Callback URL button on the Moderation and Translation tabs checks that the cloud can reach your site. When it cannot, a background job on your site asks for the result again, so the text still arrives, only later.
Privacy#
Transcription sends the audio of a voice message off your site, to the provider you chose, over HTTPS:
- OpenAI receives the audio under its own data usage policy. Read it before you turn transcription on.
- Better Messages Cloud keeps no audio. Files are transcribed as they arrive and discarded right after.
The transcript itself lives in your WordPress database, next to the voice file. When Auto-Delete Voice Messages removes old voice messages with Remove completely, their transcripts go with them. On the WebSocket version, a transcript reaches members through the relay encrypted with the key of its conversation, like message text, so the relay cannot read it.
If voice messages must never leave your server, leave transcription off. For what else to check, see GDPR-compliant WordPress chat.
Frequently asked questions#
Is voice message transcription free?#
The feature is part of Better Messages, and what it costs depends on the provider. With the OpenAI Transcription API, OpenAI bills your account for the audio it transcribes, and this works on the free version. Better Messages Transcription AI is included with the WebSocket license at no extra cost. Voice messages themselves need the Voice and Video Messages add-on, sold separately.
Are transcriptions accurate?#
Clear speech in a widely spoken language comes out close to what was said. Background noise, strong accents, jargon and two people talking at once make it worse. A language code on Cloud AI, or a prompt on OpenAI, helps when you know the language. For legal or medical records, treat a transcript as a draft to check.
Are video messages transcribed?#
No. Only voice messages show the Transcribe button and go through Auto Transcription. Video messages, and audio files sent as ordinary attachments, are not transcribed.
Does it work in end-to-end encrypted conversations?#
No. In an end-to-end encrypted conversation the recording is encrypted in the browser, so neither your server nor a provider can hear it, and the Transcribe button does not appear. AI translation, moderation and bots stay out of those conversations for the same reason.
Can members search transcripts?#
No. The message search matches the text of messages and the subjects of conversations, and a transcript is stored with the voice file rather than as message text, so it is not found.
Can transcription be on for some conversations only?#
The provider and both switches are site-wide. A developer can hide the button in chosen conversations by setting canTranscribe to false in the better_messages_rest_message_meta filter.
What audio can be transcribed?#
Voice messages recorded with the add-on, WebM with Opus and the MP3 of older versions, up to 25 MB a file. The Max Duration setting of the add-on limits how long a recording can be.
See also#
- How to choose a WordPress chat plugin: what to check in a chat plugin, voice messages included
- Voice messages in WordPress chat: the add-on that records them
- Voice and Video Messages docs: every setting of the add-on
- Better Messages Cloud AI: transcription, translation and moderation on the WebSocket version
- AI content moderation: another use of the same providers
- AI chat bots: bots that read voice messages as text
- Pricing: the free version, the WebSocket version and the add-on