← Notes

Tonight OdiMeet learned to use a DJI Mic Mini

September 20, 2026 · OdiMeet development notes

Yesterday's note was about two iPhones as an array, deciding who is speaking by distance. This morning OdiMeet's "New recording" gained a third card: one iPhone plus a wireless mic set — two clip-on transmitters, one receiver. That card went from "coming soon" in the morning to working tonight, and it is the most accurate of the three setups. This is what happened in between, crash included.

DJI Mic Mini: two transmitters, one receiver and the charging case
DJI Mic Mini (2 TX + 1 RX + charging case)
The set we used tonight. The receiver plugs into the iPhone over USB‑C; each transmitter clips onto one speaker.
Product image from Amazon. The link is an Amazon affiliate link.

Why this is the most accurate setup

The two-iPhone array relies on physics: whoever is closer is louder on their phone, 12–17 dB in our measurements. A wireless mic set is more direct still — each transmitter is its own track. The receiver puts TX1 on the left channel and TX2 on the right, on one clock, into one iPhone. Nothing to estimate, no two clocks to align: the voices are separated in hardware before the app ever sees them. What remains is splitting left and right into two tracks, transcribing each, merging by time, and putting names on the lines.

So inside OdiMeet it runs the exact Precision Mode pipeline with one switch flipped: the alignment step is forced to zero. That is not just a shortcut — bleed between lavalier mics is faint, and a cross-correlation search could lock onto a spurious peak; the two channels share a clock, so there is no offset to find.

The one thing you have to do: switch the receiver to Stereo in DJI Mimo

The receiver has three channel modes. Mono mixes both transmitters into one channel; Safety Track is the same mix plus a copy 6 dB lower; only Stereo gives one transmitter per channel. That setting lives in DJI's own Mimo app (the receiver connects to it over Bluetooth) and OdiMeet cannot change it for you — so it is the only step in the whole flow that needs your hands. Once set, plug the receiver into the iPhone and OdiMeet's recording screen shows that it recognised a DJI Mic and is getting two channels.

DJI Mimo → RX Settings → Audio Channel: Stereo.
OdiMeet's recorder: DJI Mic (Wireless Mic Rx) · 2 ch configured / 2 ch max.
The third card in New recording: one iPhone + wireless mic set.

Then it crashed, once

First full run: record, split, combine — and the app died. I pulled the crash log from the iPhone 16e over Wi‑Fi straight onto the Mac: main thread, a Swift runtime trap, in the line that builds the engine label after the merge. The cause was dumb. Because this mode skips the alignment search, I had set the "alignment lock" value to infinity, and the label converts it to an integer — Swift stops dead on Int(∞). A finite value, a label that now reads "same clock", and a test so it cannot come back.

The result

The merged conversation: Δ 19.6 dB, offset 0.00 s, same clock; 41 s of audio processed in 2 s.
Every transcript line carries TX1 / TX2; the menu renames them to real names.
Speaker separation (median over speech windows)19.6 dB
Alignment offset0.00 s · same clock
Transcribe + merge, 41 s of audio2 s (0.06× realtime)
Two-iPhone array, same measure (for comparison)12–17 dB

19.6 dB beats the two-iPhone array's best — and it is what lavalier mics should deliver: 15 cm from a mouth, with the other person two metres away. TX1 and TX2 alternate cleanly through the transcript; the tester's verdict was "isolation is perfect". Then came "Rename speakers", so TX1 and TX2 become people, in every line and in exports.

How the three setups line up now

Three cards in New recording, swiped left and right: One iPhone (simplest; speaker labels estimated from voice-prints) → Two iPhones (best deal; phones you already own, attribution measured by distance) → One iPhone + wireless mic set (most professional; separated in hardware). Accuracy climbs in the same order. All three run on the device; the audio never leaves the phone.

So

OdiMeet now has its first certified compact wireless mic set: the DJI Mic Mini. If you already own one, or are about to buy one, you can use it with confidence: set the receiver to Stereo in DJI Mimo first (the only setting you need to touch), plug it into your iPhone, pick the third card in New recording — one track per speaker, and the transcript tells you who said what.

Receivers that work the same way should work too, but we keep the word "certified" for sets we have actually tested on a table. A few hours later, the RØDE Wireless Micro passed as well. This setup ships with OdiMeet 1.1.

OdiMeet is free for 90 days, then $2.99 a month, $29.99 a year, or $39.99 once. Follow odimeet.app for the App Store link.

← 開發筆記

今晚,OdiMeet 正式支援 DJI Mic Mini

2026 年 9 月 20 日 · OdiMeet 開發筆記

昨天筆記寫的是兩支 iPhone 組成陣列、靠距離判斷誰在講。今天早上 OdiMeet 的「新錄音」多了第三張卡:一支 iPhone 加一組無線麥克風——兩個領夾式發射器、一個接收器。那張卡從早上的「即將推出」,到今晚變成能用、而且是三種模式裡最準的一種。這篇記錄中間發生的事,包括一次 crash。

DJI Mic Mini:兩個發射器、一個接收器與充電盒
DJI Mic Mini(2 TX + 1 RX + 充電盒)
我們今晚用的就是這一組。接收器以 USB‑C 接到 iPhone,兩個發射器各夾在一位講者身上。
商品圖片來自 Amazon。連結為 Amazon 推薦連結。

為什麼這是最準的一種

兩支 iPhone 的陣列靠的是物理:離誰近,誰的手機大聲,實測差 12–17 dB。無線麥克風組更直接——每個發射器就是一條獨立的音軌,接收器把 TX1 放在左聲道、TX2 放在右聲道,同一個時鐘同時送進 iPhone。不用估計誰比較大聲,不用對齊兩支手機的時鐘,兩個人的聲音在硬體層就已經分開了。剩下的工作只有:把左右聲道拆成兩軌,各自轉錄,按時間合併,標上名字。

所以在 OdiMeet 裡它走的是和精準模式一模一樣的管線,只差一個開關:對齊步驟直接設為 0。這不只是省事——領夾麥克風之間的串音很弱,用互相關去找偏移反而可能抓到假峰值;兩個聲道本來就是同一個時鐘,沒有偏移可找。

唯一要你動手的一步:在 DJI Mimo 切到 Stereo

接收器有三種聲道模式:Mono 把兩個發射器混成一路,Safety Track 是同一路再加一條低 6 dB 的備份,只有 Stereo 才是一個發射器一個聲道。這個設定在 DJI 自己的 Mimo app 裡(接收器透過藍牙連上去改),OdiMeet 改不了它——所以這是整個流程裡唯一需要你操作的地方。設好之後,接收器接上 iPhone,OdiMeet 的錄音畫面會顯示它認出了 DJI Mic、而且拿到兩個聲道。

DJI Mimo → RX Settings → Audio Channel:Stereo。
OdiMeet 錄音畫面:DJI Mic(Wireless Mic Rx)· 2 ch configured / 2 ch max。
新錄音的第三張卡:一支 iPhone + 無線麥克風組。

然後 crash 了一次

第一次完整跑:錄完、切軌、合併——然後 app 當掉。我把 crash log 從 iPhone 16e 透過 Wi‑Fi 直接拉到 Mac 上看:主執行緒、Swift 的執行期陷阱,位置在合併完成後組字串的那一行。原因很蠢:因為這個模式跳過了對齊搜尋,我把「對齊鎖定倍數」設成無限大,而顯示用的字串把它轉成整數——Swift 遇到 Int(∞) 會直接停下來。改成有限值、字串改寫成「same clock」,並加了一個測試防止它再回來。

結果

合併結果:Δ 19.6 dB、offset 0.00 s、same clock;41 秒音檔 2 秒處理完。
逐字稿每一句帶 TX1 / TX2;選單裡可以把它們改成真名。
講者分離度(語音窗中位數)19.6 dB
對齊偏移0.00 s · 同一時鐘
轉錄 + 合併耗時(41 秒音檔)2 s(0.06× 即時)
兩支 iPhone 陣列,同樣的量(對照)12–17 dB

19.6 dB 比兩支 iPhone 的最好成績還高——而且這是領夾麥克風本來就該有的數字:麥克風離嘴 15 公分,對面的人在兩公尺外。逐字稿裡 TX1 / TX2 交替得乾淨;測試者的評語是「隔離完美」。接著補了「重新命名說話者」,把 TX1、TX2 換成人名,逐字稿每一句和匯出檔一起改。

三種模式現在怎麼排

新錄音的三張卡,左右滑動:一支 iPhone(最簡單,講者標記用聲紋估計)→ 兩支 iPhone(最划算,用你已經有的手機,靠距離量出誰在講)→ 一支 iPhone + 無線麥克風組(最專業,硬體分軌)。準確度剛好反過來遞增。三種都在裝置上完成,音檔都不離開手機。

好了

現在 OdiMeet 有了第一套我們認證的迷你錄音麥克風:DJI Mic Mini。如果你已經有這套設備,或正準備買,現在可以放心用了:先在 DJI Mimo 把接收器切到 Stereo(唯一要做的設定),接上 iPhone,新錄音選第三張卡——兩位講者各一條音軌,誰說了什麼,逐字稿直接寫給你。

同樣原理的接收器理論上都能用,但「認證」兩個字我們留給真的在桌上測過的。幾小時後 RØDE Wireless Micro 也測完了。這個模式隨 OdiMeet 1.1 推出。

OdiMeet 免費試用 90 天,之後月費 $2.99、年費 $29.99,或一次買斷 $39.99。App Store 連結會放在 odimeet.app。