Transkrip memberitahu anda perkara yang disebut. Untuk temu bual, mesyuarat dan podcast, kita juga perlu tahu siapa yang menyebutnya — masalah yang dipanggil diarization penutur (speaker diarization) dalam penyelidikan pertuturan. Bermula dengan iPhone 1.8.5, Mac App Store 1.3.2 dan binaan Mac muat turun terus 1.5.1, Whisper Notes menjalankan proses ini sepenuhnya pada peranti.
Artikel ini menerangkan cara ia berfungsi, berkongsi keputusan penanda aras terhadap data rujukan yang dijana di awan, serta menjelaskan satu corak kegagalan yang tidak dapat kami hapuskan — dan penyelesaian yang kami bina sebagai gantinya.
Perkara yang dilakukannya
Buka nota — rakaman, fail audio atau video yang diimport, atau rakaman mesyuarat — lalu tekan butang penutur. Beberapa saat kemudian, setiap perenggan mempunyai label penutur dan cap masa.
Label penutur pada Mac dan iPhone. Tekan ayat untuk beralih ke detik tersebut dalam audio.
Label bermula sebagai Penutur 1 dan Penutur 2. Menamakan semula satu label akan mengemas kini seluruh transkrip. Tekan mana-mana ayat untuk membawa audio ke detik tepat itu, supaya petikan mudah disemak dengan suara asal.
Menamakan semula penutur mengemas kini setiap perenggan dalam nota.
Rakaman mesyuarat menjalankan pengenalpastian penutur secara automatik selepas panggilan tamat (boleh dimatikan dalam Tetapan). Label kekal apabila dieksport: Salin Transkrip dengan Penutur membawanya ke papan klip, manakala fail SRT dan VTT mengekalkannya dalam sari kata.
Diarization beroperasi pada suara, bukan perkataan. Oleh itu, ia berfungsi dengan cara yang sama merentas 100+ bahasa yang boleh ditranskripsikan oleh aplikasi.
Model 19 MB pada Neural Engine
Diarization menjawab “siapa bercakap bila” dalam tiga langkah. Audio dibahagi kepada segmen bersuara. Setiap segmen diubah menjadi cap suara — vektor padat yang menerangkan suara, bukan perkataan. Kemudian cap suara dikelompokkan; segmen dalam kelompok yang sama menerima label yang sama.
Whisper Notes menggunakan saluran community-1 pyannote yang ditukar kepada Core ML supaya kedua-dua peringkat berjalan pada Neural Engine. Muat turun sekali sahaja bersaiz 19 MB, dan perbualan 5.7 minit mengambil masa 2–4 saat pada Mac siri M.
Audio → segmen bersuara → cap suara → kelompok → label
Setiap langkah berjalan pada peranti.
Ini lebih penting untuk diarization berbanding transkripsi. Cap suara ialah biometrik; ia mengenal pasti seseorang seperti cap jari. Pemprosesan setempat bermakna cap suara anda, rakan sekerja dan subjek temu bual dikira, dikelompokkan dan dipadamkan pada peranti. Ia tidak pernah dihantar keluar.
Perkara yang kami ukur
Kami menggunakan penanda aras dua fail yang tetap. Data rujukan dijana oleh perkhidmatan ASR dan diarization awan ElevenLabs lalu disemak secara manual. Pemarkahan memberikan setiap 10 ms pertuturan kepada seorang penutur dan memilih padanan terbaik antara output dengan rujukan. Dua fail ialah sampel kecil, jadi angka ini petunjuk, bukan keputusan muktamad.
Fail pertama mewakili kes lazim: podcast bahasa Inggeris lima minit dengan dua suara yang jelas berbeza. Kebanyakan temu bual, podcast dan mesyuarat satu dengan satu kelihatan seperti ini.
| Podcast Inggeris dua penutur (5 minit) | Keputusan |
|---|---|
| Atribusi aras bingkai (resolusi 10 ms) | 96.7% |
| Ketepatan aras ayat (hasil yang dibaca) | 99.1% |
| Masa pemprosesan, Neural Engine siri M | 2–4 saat |
Baki 0.9% ialah tiga anjakan sempadan berjumlah 3.4 saat, hampir pada resolusi data rujukan itu sendiri. Untuk bahan seperti ini, hasil pada peranti setanding dengan perkhidmatan awan yang menghasilkan rujukan kami.
Kes yang sukar
Fail kedua sengaja dipilih kerana sukar: dua suara lelaki yang serupa dalam bilik bergema, dengan pengacara yang mencelah 19 kali selama purata 2.3 saat. Tetamu bercakap selama 272 saat; pengacara 43 saat. Inilah profil akustik yang menggagalkan diarization penutur dalam apa-apa bahasa: suara serupa bertukar giliran dalam ujaran pendek.
Pengelompokan automatik gagal di sini. Kedua-dua cap suara terlalu rapat, lalu algoritma menggabungkannya dan memberikan hampir seluruh perbualan kepada satu label. Rakaman itu kebetulan merupakan temu bual bahasa Cina, yang membolehkan kami menguji hipotesis yang jelas — model khusus bahasa akan berfungsi lebih baik. Kami menjalankan dua model penutur yang dilatih khusus dengan pertuturan Cina melalui saluran CPU:
| Model | Podcast Inggeris | Kes sukar* | Masa (audio 5.7 minit) |
|---|---|---|---|
| pyannote community-1 (digunakan, Neural Engine) | 96.7% | 81–82% | 2–4 saat |
| CAM++ (dilatih dengan bahasa Cina, CPU) | 93.9% | 81.2% | 36–103 saat |
| ERes2NetV2 (dilatih dengan bahasa Cina, CPU) | — | 80.5% | 220–290 saat |
* Atribusi aras bingkai pada fail sukar dengan bilangan penutur ditentukan. Tanpanya, semua model mengecil kepada seorang penutur.
Kedua-duanya gagal dengan cara yang sama walaupun menggunakan 10 hingga 100 kali ganda pengiraan. Kesukarannya bersifat akustik, bukan linguistik — hadnya ialah perkara yang dapat dibezakan oleh embedding suara semasa dalam apa-apa bahasa.
Ini menolak pembaikan yang jelas dan menunjukkan pilihan lain: berikan fakta yang tidak dapat disimpulkan oleh saluran — bilangan orang di dalam bilik. Dengan bilangan tertentu (pilihan menu 2 hingga 6), fail sukar meningkat daripada gagal kepada ketepatan ayat 89%. Pengesanan automatik kekal lalai kerana betul pada bahan biasa.
Jalankan semula pengesanan dengan bilangan penutur tepat. Menu yang sama mengeksport SRT dan VTT dengan label penutur.
Memperhalus celahan pendek
Selepas bilangan ditetapkan, kira-kira separuh daripada baki ralat berlaku pada celahan di bawah tiga saat. Klip dua saat memberikan isyarat yang sedikit kepada model embedding, dan dalam pertukaran pantas cap suara turut menyerap suara penutur bersebelahan.
Selepas pengelompokan, saluran memeriksa semula setiap ayat yang lebih pendek daripada 3.5 saat: cap suara dikira semula dengan topeng tepat pada bingkai ayat itu, dibandingkan dengan sauh setiap penutur — purata giliran paling panjang — dan label diubah hanya apabila marginnya jelas. Model sedia ada digunakan semula; tiada muat turun tambahan.
| Ketepatan ayat hujung ke hujung | Sebelum diperhalus | Selepas |
|---|---|---|
| Kes sukar (bilangan penutur diberi) | 89.0% | 94.8% |
| Podcast Inggeris (automatik) | 98.5% | 99.1% |
Ambang keputusan ditetapkan secara konservatif: penapis menukar 21 label pada kedua-dua fail tanpa memperkenalkan ralat baharu.
Batasan
• Label muncul selepas rakaman tamat, bukan ketika panggilan. Jika anda memerlukan sari kata langsung dengan nama penutur semasa mesyuarat berlangsung, perkhidmatan awan seperti Otter atau Notta lebih sesuai.
• Pertuturan bertindih menerima satu label bagi setiap ayat.
• Suara serupa masih sukar. 94.8% pada fail sukar ialah had semasa dengan petunjuk bilangan penutur, bukan masalah yang telah selesai.
Ketersediaan
Pengenalpastian penutur termasuk dalam pembelian sekali $6.99, bersama tiga enjin transkripsi aplikasi — Parakeet V3, Whisper Large V3 Turbo dan SenseVoice — serta penyuntingan AI setempat. Tiada pelan berasingan dan tiada akaun diperlukan.
• iPhone: App Store, versi 1.8.5 atau lebih baharu.
• Mac App Store: versi 1.3.2 atau lebih baharu.
• Muat turun terus Mac (DMG): versi 1.5.1 atau lebih baharu dari whispernotes.app, dengan percubaan percuma.
Untuk cara rakaman mesyuarat berfungsi, baca artikel transkripsi mesyuarat luar talian kami.