[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-mybigday--whisper.rn":3,"tool-mybigday--whisper.rn":64},[4,23,32,40,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85267,2,"2026-04-18T11:00:28",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},8436,"Real-Time-Voice-Cloning","CorentinJ\u002FReal-Time-Voice-Cloning","Real-Time-Voice-Cloning 是一款开源的实时语音克隆工具，旨在通过短短 5 秒的音频样本，快速复刻说话人的声音特征，并即时生成任意文本的语音内容。它有效解决了传统语音合成需要大量训练数据且无法实时响应的痛点，让个性化语音生成变得轻量且高效。\n\n该项目的核心技术基于 SV2TTS（从说话人验证到多说话人文本转语音的迁移学习）深度学习框架。其工作流程分为三个阶段：首先从少量音频中提取说话人的数字声纹表示，随后将其作为参考，结合 Tacotron 合成器与 WaveRNN 声码器，高质量地生成目标语音。这种架构不仅实现了端到端的语音合成，还保证了在普通硬件上的实时运行能力。\n\nReal-Time-Voice-Cloning 非常适合开发者、人工智能研究人员以及对语音技术感兴趣的技术爱好者使用。开发者可以将其集成到互动应用中，研究人员可借此探索语音迁移学习的前沿进展，而具备一定动手能力的普通用户也能通过提供的图形界面工具箱，轻松体验“声音复制”的乐趣。尽管目前已有商业服务在音质上表现更佳，但作为一款免费开源项目，它依然是理解和学习实时语音合成技术的绝佳入门资源。",59627,3,"2026-04-16T23:06:58",[21,20],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},4128,"GPT-SoVITS","RVC-Boss\u002FGPT-SoVITS","GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具，旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点，实现了“零样本”和“少样本”的快速建模：用户只需提供 5 秒参考音频即可即时生成语音，或使用 1 分钟数据进行微调，从而获得高度逼真且相似度极佳的声音效果。\n\n该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能，极大地降低了数据准备和模型训练的技术门槛，让非专业人士也能轻松上手。\n\n在技术亮点方面，GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成，还具备卓越的推理速度，在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音，还是进行多语言语音交互研究，GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。",56375,"2026-04-05T22:15:46",[21],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":29,"last_commit_at":46,"category_tags":47,"status":22},2863,"TTS","coqui-ai\u002FTTS","🐸TTS 是一款功能强大的深度学习文本转语音（Text-to-Speech）开源库，旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点，让高质量的语音生成变得触手可及。\n\n无论是希望快速集成语音功能的开发者，还是致力于探索前沿算法的研究人员，亦或是需要定制专属声音的数据科学家，🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型，让用户能够即刻上手，还提供了完善的工具链，支持用户利用自有数据训练新模型或对现有模型进行微调，轻松实现特定风格的声音克隆。\n\n在技术亮点方面，🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言，并在整体性能上大幅提升，实现了低于 200 毫秒的超低延迟流式输出，极大提升了实时交互体验。此外，它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型，并支持调用上千个 Fairseq 模型，展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具，🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。",44971,"2026-04-03T14:47:02",[21,20,13],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":29,"last_commit_at":54,"category_tags":55,"status":22},2375,"LocalAI","mudler\u002FLocalAI","LocalAI 是一款开源的本地人工智能引擎，旨在让用户在任意硬件上轻松运行各类 AI 模型，包括大语言模型、图像生成、语音识别及视频处理等。它的核心优势在于彻底打破了高性能计算的门槛，无需昂贵的专用 GPU，仅凭普通 CPU 或常见的消费级显卡（如 NVIDIA、AMD、Intel 及 Apple Silicon）即可部署和运行复杂的 AI 任务。\n\n对于担心数据隐私的用户而言，LocalAI 提供了“隐私优先”的解决方案，确保所有数据处理均在本地基础设施内完成，无需上传至云端。同时，它完美兼容 OpenAI、Anthropic 等主流 API 接口，这意味着开发者可以无缝迁移现有应用，直接利用本地资源替代云服务，既降低了成本又提升了可控性。\n\nLocalAI 内置了超过 35 种后端支持（如 llama.cpp、vLLM、Whisper 等），并集成了自主 AI 代理、工具调用及检索增强生成（RAG）等高级功能，且具备多用户管理与权限控制能力。无论是希望保护敏感数据的企业开发者、进行算法实验的研究人员，还是想要在个人电脑上体验最新 AI 技术的极客玩家，都能通过 LocalAI 获",44782,"2026-04-02T22:14:26",[13,21,19,17,20,14,16],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":29,"last_commit_at":62,"category_tags":63,"status":22},3108,"bark","suno-ai\u002Fbark","Bark 是由 Suno 推出的开源生成式音频模型，能够根据文本提示创造出高度逼真的多语言语音、音乐、背景噪音及简单音效。与传统仅能朗读文字的语音合成工具不同，Bark 基于 Transformer 架构，不仅能模拟说话，还能生成笑声、叹息、哭泣等非语言声音，甚至能处理带有情感色彩和语气停顿的复杂文本，极大地丰富了音频表达的可能性。\n\n它主要解决了传统语音合成声音机械、缺乏情感以及无法生成非语音类音效的痛点，让创作者能通过简单的文字描述获得生动自然的音频素材。无论是需要为视频配音的内容创作者、探索多模态生成的研究人员，还是希望快速原型设计的开发者，都能从中受益。普通用户也可通过集成的演示页面轻松体验其神奇效果。\n\n技术亮点方面，Bark 支持商业使用（MIT 许可），并在近期更新中实现了显著的推理速度提升，同时提供了适配低显存 GPU 的版本，降低了使用门槛。此外，社区还建立了丰富的提示词库，帮助用户更好地驾驭模型生成特定风格的声音。只需几行 Python 代码，即可将创意文本转化为高质量音频，是连接文字与声音世界的强大桥梁。",39067,"2026-04-04T03:33:35",[21],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":81,"owner_twitter":80,"owner_website":82,"owner_url":83,"languages":84,"stars":122,"forks":123,"last_commit_at":124,"license":125,"difficulty_score":126,"env_os":127,"env_gpu":128,"env_ram":129,"env_deps":130,"category_tags":139,"github_topics":140,"view_count":10,"oss_zip_url":80,"oss_zip_packed_at":80,"status":22,"created_at":145,"updated_at":146,"faqs":147,"releases":178},9330,"mybigday\u002Fwhisper.rn","whisper.rn","React Native binding of whisper.cpp.","whisper.rn 是一款专为 React Native 开发者打造的开源库，它将高性能的 whisper.cpp 引擎无缝集成到移动端应用中。简单来说，它让 iOS 和 Android 应用能够直接在手机本地运行 OpenAI 的 Whisper 模型，实现高质量的语音转文字功能，而无需依赖云端服务器。\n\n这一工具主要解决了移动端语音识别面临的两大难题：一是隐私安全，所有音频处理均在设备本地完成，数据不出境；二是网络依赖与延迟，即使在离线环境下也能快速响应。对于需要构建跨平台语音交互功能的移动开发者而言，whisper.rn 提供了极大的便利，避免了从零开始编译底层 C++ 代码的复杂过程。\n\n其技术亮点在于卓越的性能优化与丰富的功能扩展。它不仅支持在 iPhone 上利用 Core ML 加速，在 Android 设备上也能高效运行，甚至集成了 Silero VAD（语音活动检测）模型，能智能识别音频中的有效人声片段，过滤静音与噪音。此外，它还支持多种模型尺寸选择，并针对 Apple Silicon 芯片等开发环境做了专门适配。无论是希望为应用添加实时字幕、语音笔记还是智能助手功","whisper.rn 是一款专为 React Native 开发者打造的开源库，它将高性能的 whisper.cpp 引擎无缝集成到移动端应用中。简单来说，它让 iOS 和 Android 应用能够直接在手机本地运行 OpenAI 的 Whisper 模型，实现高质量的语音转文字功能，而无需依赖云端服务器。\n\n这一工具主要解决了移动端语音识别面临的两大难题：一是隐私安全，所有音频处理均在设备本地完成，数据不出境；二是网络依赖与延迟，即使在离线环境下也能快速响应。对于需要构建跨平台语音交互功能的移动开发者而言，whisper.rn 提供了极大的便利，避免了从零开始编译底层 C++ 代码的复杂过程。\n\n其技术亮点在于卓越的性能优化与丰富的功能扩展。它不仅支持在 iPhone 上利用 Core ML 加速，在 Android 设备上也能高效运行，甚至集成了 Silero VAD（语音活动检测）模型，能智能识别音频中的有效人声片段，过滤静音与噪音。此外，它还支持多种模型尺寸选择，并针对 Apple Silicon 芯片等开发环境做了专门适配。无论是希望为应用添加实时字幕、语音笔记还是智能助手功能的工程师，都能通过简单的几行代码快速落地这些高级特性。","# whisper.rn\n\n[![Actions Status](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fworkflows\u002FCI\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Factions)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![npm](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fwhisper.rn.svg)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fwhisper.rn\u002F)\n\nReact Native binding of [whisper.cpp](https:\u002F\u002Fgithub.com\u002Fggerganov\u002Fwhisper.cpp).\n\n[whisper.cpp](https:\u002F\u002Fgithub.com\u002Fggerganov\u002Fwhisper.cpp): High-performance inference of [OpenAI's Whisper](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper) automatic speech recognition (ASR) model\n\n## Screenshots\n\n| \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmybigday_whisper.rn_readme_550721119056.png\" width=\"300\" \u002F> | \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmybigday_whisper.rn_readme_86d5bb3415ee.png\" width=\"300\" \u002F> |\n| :------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: |\n|                                           iOS: Tested on iPhone 13 Pro Max                                           |                                              Android: Tested on Pixel 6                                              |\n|                                  (tiny.en, Core ML enabled, release mode + archive)                                  |                                       (tiny.en, armv8.2-a+fp16, release mode)                                        |\n\n## Installation\n\n```sh\nnpm install whisper.rn\n```\n\n#### iOS\n\nPlease re-run `npx pod-install` again.\n\nBy default, `whisper.rn` will use pre-built `rnwhisper.xcframework` for iOS. If you want to build from source, please set `RNWHISPER_BUILD_FROM_SOURCE` to `1` in your Podfile.\n\nIf you want to use `medium` or `large` model, the [Extended Virtual Addressing](https:\u002F\u002Fdeveloper.apple.com\u002Fdocumentation\u002Fbundleresources\u002Fentitlements\u002Fcom_apple_developer_kernel_extended-virtual-addressing) capability is recommended to enable on iOS project.\n\n#### Android\n\nAdd proguard rule if it's enabled in project (android\u002Fapp\u002Fproguard-rules.pro):\n\n```proguard\n# whisper.rn\n-keep class com.rnwhisper.** { *; }\n```\n\nIt's recommended to use `ndkVersion = \"24.0.8215888\"` (or above) in your root project build configuration for Apple Silicon Macs. Otherwise please follow this trobleshooting [issue](.\u002FTROUBLESHOOTING.md#android-got-build-error-unknown-host-cpu-architecture-arm64-on-apple-silicon-macs).\n\n#### Expo\n\nYou will need to prebuild the project before using it. See [Expo guide](https:\u002F\u002Fdocs.expo.io\u002Fguides\u002Fusing-libraries\u002F#using-a-library-in-a-expo-project) for more details.\n\n## Tips & Tricks\n\nThe [Tips & Tricks](docs\u002FTIPS.md) document is a collection of tips and tricks for using `whisper.rn`.\n\n## Usage\n\n```js\nimport { initWhisper } from 'whisper.rn'\n\nconst whisperContext = await initWhisper({\n  filePath: 'file:\u002F\u002F...\u002Fggml-tiny.en.bin',\n})\n\nconst sampleFilePath = 'file:\u002F\u002F...\u002Fsample.wav'\nconst options = { language: 'en' }\nconst { stop, promise } = whisperContext.transcribe(sampleFilePath, options)\n\nconst { result } = await promise\n\u002F\u002F result: (The inference text result from audio file)\n```\n\n## Voice Activity Detection (VAD)\n\nVoice Activity Detection allows you to detect speech segments in audio data using the Silero VAD model.\n\n#### Initialize VAD Context\n\n```typescript\nimport { initWhisperVad } from 'whisper.rn'\n\nconst vadContext = await initWhisperVad({\n  filePath: require('.\u002Fassets\u002Fggml-silero-v6.2.0.bin'), \u002F\u002F VAD model file\n  useGpu: true, \u002F\u002F Use GPU acceleration (iOS only)\n  nThreads: 4, \u002F\u002F Number of threads for processing\n})\n```\n\n#### Detect Speech Segments\n\n##### From Audio Files\n\n```typescript\n\u002F\u002F Detect speech in audio file (supports same formats as transcribe)\nconst segments = await vadContext.detectSpeech(require('.\u002Fassets\u002Faudio.wav'), {\n  threshold: 0.5, \u002F\u002F Speech probability threshold (0.0-1.0)\n  minSpeechDurationMs: 250, \u002F\u002F Minimum speech duration in ms\n  minSilenceDurationMs: 100, \u002F\u002F Minimum silence duration in ms\n  maxSpeechDurationS: 30, \u002F\u002F Maximum speech duration in seconds\n  speechPadMs: 30, \u002F\u002F Padding around speech segments in ms\n  samplesOverlap: 0.1, \u002F\u002F Overlap between analysis windows\n})\n\n\u002F\u002F Also supports:\n\u002F\u002F - File paths: vadContext.detectSpeech('path\u002Fto\u002Faudio.wav', options)\n\u002F\u002F - HTTP URLs: vadContext.detectSpeech('https:\u002F\u002Fexample.com\u002Faudio.wav', options)\n\u002F\u002F - Base64 WAV: vadContext.detectSpeech('data:audio\u002Fwav;base64,...', options)\n\u002F\u002F - Assets: vadContext.detectSpeech(require('.\u002Fassets\u002Faudio.wav'), options)\n```\n\n##### From Raw Audio Data\n\n```typescript\n\u002F\u002F Detect speech in base64 encoded float32 PCM data\nconst segments = await vadContext.detectSpeechData(base64AudioData, {\n  threshold: 0.5,\n  minSpeechDurationMs: 250,\n  minSilenceDurationMs: 100,\n  maxSpeechDurationS: 30,\n  speechPadMs: 30,\n  samplesOverlap: 0.1,\n})\n```\n\n#### Process Results\n\n```typescript\nsegments.forEach((segment, index) => {\n  console.log(\n    `Segment ${index + 1}: ${segment.t0.toFixed(2)}s - ${segment.t1.toFixed(\n      2,\n    )}s`,\n  )\n  console.log(`Duration: ${(segment.t1 - segment.t0).toFixed(2)}s`)\n})\n```\n\n#### Release VAD Context\n\n```typescript\nawait vadContext.release()\n\u002F\u002F Or release all VAD contexts\nawait releaseAllWhisperVad()\n```\n\n## Realtime Transcription\n\nThe new `RealtimeTranscriber` provides enhanced realtime transcription with features like Voice Activity Detection (VAD), auto-slicing, and memory management.\n\n```js\n\u002F\u002F If your RN packager is not enable package exports support, use whisper.rn\u002Fsrc\u002Frealtime-transcription\nimport { RealtimeTranscriber } from 'whisper.rn\u002Frealtime-transcription'\nimport { AudioPcmStreamAdapter } from 'whisper.rn\u002Frealtime-transcription\u002Fadapters'\nimport RNFS from 'react-native-fs' \u002F\u002F or any compatible filesystem\n\n\u002F\u002F Dependencies\nconst whisperContext = await initWhisper({\n  \u002F* ... *\u002F\n})\nconst vadContext = await initWhisperVad({\n  \u002F* ... *\u002F\n})\nconst audioStream = new AudioPcmStreamAdapter() \u002F\u002F requires @fugood\u002Freact-native-audio-pcm-stream\n\n\u002F\u002F Create transcriber\nconst transcriber = new RealtimeTranscriber(\n  { whisperContext, vadContext, audioStream, fs: RNFS },\n  {\n    audioSliceSec: 30,\n    vadPreset: 'default',\n    autoSliceOnSpeechEnd: true,\n    transcribeOptions: { language: 'en' },\n  },\n  {\n    onTranscribe: (event) => console.log('Transcription:', event.data?.result),\n    onVad: (event) => console.log('VAD:', event.type, event.confidence),\n    onStatusChange: (isActive) =>\n      console.log('Status:', isActive ? 'ACTIVE' : 'INACTIVE'),\n    onError: (error) => console.error('Error:', error),\n  },\n)\n\n\u002F\u002F Start\u002Fstop transcription\nawait transcriber.start()\nawait transcriber.stop()\n```\n\n**Dependencies:**\n\n- `@fugood\u002Freact-native-audio-pcm-stream` for `AudioPcmStreamAdapter`\n- Compatible filesystem module (e.g., `react-native-fs`). See [filesystem interface](src\u002Futils\u002FWavFileWriter.ts#L9-L16) for TypeScript definition\n\n**Custom Audio Adapters:**\nYou can create custom audio stream adapters by implementing the [AudioStreamInterface](src\u002Frealtime-transcription\u002Ftypes.ts#L21-L30). This allows integration with different audio sources or custom audio processing pipelines.\n\n**Example:** See [complete example](example\u002Fsrc\u002FRealtimeTranscriber.tsx) for full implementation including file simulation and UI.\n\nPlease visit the [Documentation](docs\u002F) for more details.\n\n## Usage with assets\n\nYou can also use the model file \u002F audio file from assets:\n\n```js\nimport { initWhisper } from 'whisper.rn'\n\nconst whisperContext = await initWhisper({\n  filePath: require('..\u002Fassets\u002Fggml-tiny.en.bin'),\n})\n\nconst { stop, promise } = whisperContext.transcribe(\n  require('..\u002Fassets\u002Fsample.wav'),\n  options,\n)\n\n\u002F\u002F ...\n```\n\nThis requires editing the `metro.config.js` to support assets:\n\n```js\n\u002F\u002F ...\nconst defaultAssetExts = require('metro-config\u002Fsrc\u002Fdefaults\u002Fdefaults').assetExts\n\nmodule.exports = {\n  \u002F\u002F ...\n  resolver: {\n    \u002F\u002F ...\n    assetExts: [\n      ...defaultAssetExts,\n      'bin', \u002F\u002F whisper.rn: ggml model binary\n      'mil', \u002F\u002F whisper.rn: CoreML model asset\n    ],\n  },\n}\n```\n\nPlease note that:\n\n- It will significantly increase the size of the app in release mode.\n- The RN packager is not allowed file size larger than 2GB, so it not able to use original f16 `large` model (2.9GB), you can use quantized models instead.\n\n## Core ML support\n\n**_Platform: iOS 15.0+, tvOS 15.0+_**\n\nTo use Core ML on iOS, you will need to have the Core ML model files.\n\nThe `.mlmodelc` model files is load depend on the ggml model file path. For example, if your ggml model path is `ggml-tiny.en.bin`, the Core ML model path will be `ggml-tiny.en-encoder.mlmodelc`. Please note that the ggml model is still needed as decoder or encoder fallback.\n\nThe Core ML models are hosted here: https:\u002F\u002Fhuggingface.co\u002Fggerganov\u002Fwhisper.cpp\u002Ftree\u002Fmain\n\nIf you want to download model at runtime, during the host file is archive, you will need to unzip the file to get the `.mlmodelc` directory, you can use library like [react-native-zip-archive](https:\u002F\u002Fgithub.com\u002Fmockingbot\u002Freact-native-zip-archive), or host those individual files to download yourself.\n\nThe `.mlmodelc` is a directory, usually it includes 5 files (3 required):\n\n```json5\n[\n  'model.mil',\n  'coremldata.bin',\n  'weights\u002Fweight.bin',\n  \u002F\u002F Not required:\n  \u002F\u002F 'metadata.json', 'analytics\u002Fcoremldata.bin',\n]\n```\n\nOr just use `require` to bundle that in your app, like the example app does, but this would increase the app size significantly.\n\n```js\nconst whisperContext = await initWhisper({\n  filePath: require('..\u002Fassets\u002Fggml-tiny.en.bin')\n  coreMLModelAsset:\n    Platform.OS === 'ios'\n      ? {\n          filename: 'ggml-tiny.en-encoder.mlmodelc',\n          assets: [\n            require('..\u002Fassets\u002Fggml-tiny.en-encoder.mlmodelc\u002Fweights\u002Fweight.bin'),\n            require('..\u002Fassets\u002Fggml-tiny.en-encoder.mlmodelc\u002Fmodel.mil'),\n            require('..\u002Fassets\u002Fggml-tiny.en-encoder.mlmodelc\u002Fcoremldata.bin'),\n          ],\n        }\n      : undefined,\n})\n```\n\nIn real world, we recommended to split the asset imports into another platform specific file (e.g. `context-opts.ios.js`) to avoid these unused files in the bundle for Android.\n\n## Run with example\n\nThe example app provide a simple UI for testing the functions.\n\nUsed Whisper model: `tiny.en` in https:\u002F\u002Fhuggingface.co\u002Fggerganov\u002Fwhisper.cpp\nSample file: `jfk.wav` in https:\u002F\u002Fgithub.com\u002Fggerganov\u002Fwhisper.cpp\u002Ftree\u002Fmaster\u002Fsamples\n\nPlease follow the [Development Workflow section of contributing guide](.\u002FCONTRIBUTING.md#development-workflow) to run the example app.\n\n## Mock `whisper.rn`\n\nWe have provided a mock version of `whisper.rn` for testing purpose you can use on Jest:\n\n```js\njest.mock('whisper.rn', () => require('whisper.rn\u002Fjest-mock'))\n```\n\n## Apps using `whisper.rn`\n\n- [BRICKS](https:\u002F\u002Fbricks.tools): Our product for building interactive signage in simple way. We provide LLM functions as Generator LLM\u002FAssistant.\n- ... (Any Contribution is welcome)\n\n## Node.js binding\n\n- [whisper.node](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.node): An another Node.js binding of `whisper.cpp` but made API same as `whisper.rn`.\n\n## Contributing\n\nSee the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.\n\n## Troubleshooting\n\nSee the [troubleshooting](docs\u002FTROUBLESHOOTING.md) if you encounter any problem while using `whisper.rn`.\n\n## License\n\nMIT\n\n---\n\nMade with [create-react-native-library](https:\u002F\u002Fgithub.com\u002Fcallstack\u002Freact-native-builder-bob)\n\n---\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fbricks.tools\">\n    \u003Cimg width=\"90px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmybigday_whisper.rn_readme_2c0e3812eba2.png\">\n  \u003C\u002Fa>\n  \u003Cp align=\"center\">\n    Built and maintained by \u003Ca href=\"https:\u002F\u002Fbricks.tools\">BRICKS\u003C\u002Fa>.\n  \u003C\u002Fp>\n\u003C\u002Fp>\n","# whisper.rn\n\n[![Actions Status](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fworkflows\u002FCI\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Factions)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![npm](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fwhisper.rn.svg)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fwhisper.rn\u002F)\n\nReact Native 绑定 [whisper.cpp](https:\u002F\u002Fgithub.com\u002Fggerganov\u002Fwhisper.cpp)。\n\n[whisper.cpp](https:\u002F\u002Fgithub.com\u002Fggerganov\u002Fwhisper.cpp)：高性能推理 [OpenAI's Whisper](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper) 自动语音识别 (ASR) 模型。\n\n## 截图\n\n| \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmybigday_whisper.rn_readme_550721119056.png\" width=\"300\" \u002F> | \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmybigday_whisper.rn_readme_86d5bb3415ee.png\" width=\"300\" \u002F> |\n| :------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: |\n|                                           iOS：在 iPhone 13 Pro Max 上测试                                           |                                              Android：在 Pixel 6 上测试                                              |\n|                                  (tiny.en，启用 Core ML，发布模式 + 归档)                                  |                                       (tiny.en，armv8.2-a+fp16，发布模式)                                        |\n\n## 安装\n\n```sh\nnpm install whisper.rn\n```\n\n#### iOS\n\n请再次运行 `npx pod-install`。\n\n默认情况下，`whisper.rn` 将使用预构建的 `rnwhisper.xcframework` 用于 iOS。如果您想从源代码构建，请在您的 Podfile 中将 `RNWHISPER_BUILD_FROM_SOURCE` 设置为 `1`。\n\n如果您想使用 `medium` 或 `large` 模型，建议在 iOS 项目中启用 [扩展虚拟地址空间](https:\u002F\u002Fdeveloper.apple.com\u002Fdocumentation\u002Fbundleresources\u002Fentitlements\u002Fcom_apple_developer_kernel_extended-virtual-addressing) 功能。\n\n#### Android\n\n如果项目中启用了 ProGuard，请在 `android\u002Fapp\u002Fproguard-rules.pro` 中添加以下规则：\n\n```proguard\n# whisper.rn\n-keep class com.rnwhisper.** { *; }\n```\n\n对于 Apple Silicon Mac，建议在根项目构建配置中使用 `ndkVersion = \"24.0.8215888\"`（或更高版本）。否则，请参考此故障排除 [问题](.\u002FTROUBLESHOOTING.md#android-got-build-error-unknown-host-cpu-architecture-arm64-on-apple-silicon-macs)。\n\n#### Expo\n\n您需要在使用之前预构建项目。有关更多详细信息，请参阅 [Expo 指南](https:\u002F\u002Fdocs.expo.io\u002Fguides\u002Fusing-libraries\u002F#using-a-library-in-a-expo-project)。\n\n## 技巧与窍门\n\n[技巧与窍门](docs\u002FTIPS.md) 文档收集了使用 `whisper.rn` 的一些技巧和窍门。\n\n## 使用方法\n\n```js\nimport { initWhisper } from 'whisper.rn'\n\nconst whisperContext = await initWhisper({\n  filePath: 'file:\u002F\u002F...\u002Fggml-tiny.en.bin',\n})\n\nconst sampleFilePath = 'file:\u002F\u002F...\u002Fsample.wav'\nconst options = { language: 'en' }\nconst { stop, promise } = whisperContext.transcribe(sampleFilePath, options)\n\nconst { result } = await promise\n\u002F\u002F result：（来自音频文件的推理文本结果）\n```\n\n## 语音活动检测 (VAD)\n\n语音活动检测允许您使用 Silero VAD 模型检测音频数据中的语音片段。\n\n#### 初始化 VAD 上下文\n\n```typescript\nimport { initWhisperVad } from 'whisper.rn'\n\nconst vadContext = await initWhisperVad({\n  filePath: require('.\u002Fassets\u002Fggml-silero-v6.2.0.bin'), \u002F\u002F VAD 模型文件\n  useGpu: true, \u002F\u002F 使用 GPU 加速（仅限 iOS）\n  nThreads: 4, \u002F\u002F 处理线程数\n})\n```\n\n#### 检测语音片段\n\n##### 来自音频文件\n\n```typescript\n\u002F\u002F 检测音频文件中的语音（支持与转录相同的格式）\nconst segments = await vadContext.detectSpeech(require('.\u002Fassets\u002Faudio.wav'), {\n  threshold: 0.5, \u002F\u002F 语音概率阈值（0.0-1.0）\n  minSpeechDurationMs: 250, \u002F\u002F 最小语音持续时间（毫秒）\n  minSilenceDurationMs: 100, \u002F\u002F 最小静音持续时间（毫秒）\n  maxSpeechDurationS: 30, \u002F\u002F 最大语音持续时间（秒）\n  speechPadMs: 30, \u002F\u002F 语音片段周围的填充时间（毫秒）\n  samplesOverlap: 0.1, \u002F\u002F 分析窗口之间的重叠比例\n})\n\n\u002F\u002F 同样支持：\n\u002F\u002F - 文件路径：vadContext.detectSpeech('path\u002Fto\u002Faudio.wav', options)\n\u002F\u002F - HTTP URL：vadContext.detectSpeech('https:\u002F\u002Fexample.com\u002Faudio.wav', options)\n\u002F\u002F - Base64 WAV：vadContext.detectSpeech('data:audio\u002Fwav;base64,...', options)\n\u002F\u002F - 资源文件：vadContext.detectSpeech(require('.\u002Fassets\u002Faudio.wav'), options)\n```\n\n##### 来自原始音频数据\n\n```typescript\n\u002F\u002F 检测 base64 编码的 float32 PCM 数据中的语音\nconst segments = await vadContext.detectSpeechData(base64AudioData, {\n  threshold: 0.5,\n  minSpeechDurationMs: 250,\n  minSilenceDurationMs: 100,\n  maxSpeechDurationS: 30,\n  speechPadMs: 30,\n  samplesOverlap: 0.1,\n})\n```\n\n#### 处理结果\n\n```typescript\nsegments.forEach((segment, index) => {\n  console.log(\n    `第 ${index + 1} 段：${segment.t0.toFixed(2)} 秒 - ${segment.t1.toFixed(2)} 秒`,\n  )\n  console.log(`持续时间：${(segment.t1 - segment.t0).toFixed(2)} 秒`)\n})\n```\n\n#### 释放 VAD 上下文\n\n```typescript\nawait vadContext.release()\n\u002F\u002F 或者释放所有 VAD 上下文\nawait releaseAllWhisperVad()\n```\n\n## 实时转录\n\n新的 `RealtimeTranscriber` 提供了增强的实时转录功能，包括语音活动检测 (VAD)、自动切片和内存管理等特性。\n\n```js\n\u002F\u002F 如果你的 RN 打包工具不支持 package exports，可以使用 whisper.rn\u002Fsrc\u002Frealtime-transcription\nimport { RealtimeTranscriber } from 'whisper.rn\u002Frealtime-transcription'\nimport { AudioPcmStreamAdapter } from 'whisper.rn\u002Frealtime-transcription\u002Fadapters'\nimport RNFS from 'react-native-fs' \u002F\u002F 或任何兼容的文件系统\n\n\u002F\u002F 依赖项\nconst whisperContext = await initWhisper({\n  \u002F* ... *\u002F\n})\nconst vadContext = await initWhisperVad({\n  \u002F* ... *\u002F\n})\nconst audioStream = new AudioPcmStreamAdapter() \u002F\u002F 需要 @fugood\u002Freact-native-audio-pcm-stream\n\n\u002F\u002F 创建转录器\nconst transcriber = new RealtimeTranscriber(\n  { whisperContext, vadContext, audioStream, fs: RNFS },\n  {\n    audioSliceSec: 30,\n    vadPreset: 'default',\n    autoSliceOnSpeechEnd: true,\n    transcribeOptions: { language: 'en' },\n  },\n  {\n    onTranscribe: (event) => console.log('转录:', event.data?.result),\n    onVad: (event) => console.log('VAD:', event.type, event.confidence),\n    onStatusChange: (isActive) =>\n      console.log('状态:', isActive ? 'ACTIVE' : 'INACTIVE'),\n    onError: (error) => console.error('错误:', error),\n  },\n)\n\n\u002F\u002F 开始\u002F停止转录\nawait transcriber.start()\nawait transcriber.stop()\n```\n\n**依赖项：**\n\n- `@fugood\u002Freact-native-audio-pcm-stream` 用于 `AudioPcmStreamAdapter`\n- 兼容的文件系统模块（例如 `react-native-fs`）。请参阅 [文件系统接口](src\u002Futils\u002FWavFileWriter.ts#L9-L16) 获取 TypeScript 定义。\n\n**自定义音频适配器：**\n你可以通过实现 [AudioStreamInterface](src\u002Frealtime-transcription\u002Ftypes.ts#L21-L30) 来创建自定义音频流适配器。这允许与不同的音频源或自定义音频处理管道集成。\n\n**示例：** 请参阅 [完整示例](example\u002Fsrc\u002FRealtimeTranscriber.tsx) 以获取包括文件模拟和 UI 的完整实现。\n\n更多详细信息请访问 [文档](docs\u002F)。\n\n## 使用资源文件\n\n你也可以从资源文件中使用模型文件或音频文件：\n\n```js\nimport { initWhisper } from 'whisper.rn'\n\nconst whisperContext = await initWhisper({\n  filePath: require('..\u002Fassets\u002Fggml-tiny.en.bin'),\n})\n\nconst { stop, promise } = whisperContext.transcribe(\n  require('..\u002Fassets\u002Fsample.wav'),\n  options,\n)\n\n\u002F\u002F ...\n```\n\n这需要编辑 `metro.config.js` 以支持资源文件：\n\n```js\n\u002F\u002F ...\nconst defaultAssetExts = require('metro-config\u002Fsrc\u002Fdefaults\u002Fdefaults').assetExts\n\nmodule.exports = {\n  \u002F\u002F ...\n  resolver: {\n    \u002F\u002F ...\n    assetExts: [\n      ...defaultAssetExts,\n      'bin', \u002F\u002F whisper.rn：ggml 模型二进制文件\n      'mil', \u002F\u002F whisper.rn：CoreML 模型资源文件\n    ],\n  },\n}\n```\n\n请注意：\n\n- 这会显著增加发布模式下的应用大小。\n- RN 打包工具不允许超过 2GB 的文件大小，因此无法使用原始 f16 `large` 模型（2.9GB），建议使用量化后的模型。\n\n## Core ML 支持\n\n**_平台：iOS 15.0+，tvOS 15.0+_**\n\n要在 iOS 上使用 Core ML，你需要 Core ML 模型文件。\n\n`.mlmodelc` 模型文件的加载依赖于 ggml 模型文件路径。例如，如果你的 ggml 模型路径是 `ggml-tiny.en.bin`, 那么对应的 Core ML 模型路径将是 `ggml-tiny.en-encoder.mlmodelc`。请注意，ggml 模型仍然需要作为解码器或编码器的备用方案。\n\nCore ML 模型托管在：https:\u002F\u002Fhuggingface.co\u002Fggerganov\u002Fwhisper.cpp\u002Ftree\u002Fmain\n\n如果你想在运行时下载模型，并且模型文件是压缩包形式，你需要先解压才能获得 `.mlmodelc` 目录。可以使用类似 [react-native-zip-archive](https:\u002F\u002Fgithub.com\u002Fmockingbot\u002Freact-native-zip-archive) 的库，或者将这些单独的文件托管起来供自己下载。\n\n`.mlmodelc` 是一个目录，通常包含 5 个文件（其中 3 个是必需的）：\n\n```json5\n[\n  'model.mil',\n  'coremldata.bin',\n  'weights\u002Fweight.bin',\n  \u002F\u002F 非必需：\n  \u002F\u002F 'metadata.json', 'analytics\u002Fcoremldata.bin',\n]\n```\n\n或者直接使用 `require` 将其打包到你的应用中，就像示例应用那样，但这会显著增加应用大小。\n\n```js\nconst whisperContext = await initWhisper({\n  filePath: require('..\u002Fassets\u002Fggml-tiny.en.bin')\n  coreMLModelAsset:\n    Platform.OS === 'ios'\n      ? {\n          filename: 'ggml-tiny.en-encoder.mlmodelc',\n          assets: [\n            require('..\u002Fassets\u002Fggml-tiny.en-encoder.mlmodelc\u002Fweights\u002Fweight.bin'),\n            require('..\u002Fassets\u002Fggml-tiny.en-encoder.mlmodelc\u002Fmodel.mil'),\n            require('..\u002Fassets\u002Fggml-tiny.en-encoder.mlmodelc\u002Fcoremldata.bin'),\n          ],\n        }\n      : undefined,\n})\n```\n\n在实际开发中，我们建议将资源导入拆分到另一个平台特定的文件中（例如 `context-opts.ios.js`），以避免这些未使用的文件被打包到 Android 应用中。\n\n## 运行示例\n\n示例应用提供了一个简单的界面来测试各项功能。\n\n使用的 Whisper 模型：https:\u002F\u002Fhuggingface.co\u002Fggerganov\u002Fwhisper.cpp 中的 `tiny.en`  \n示例文件：https:\u002F\u002Fgithub.com\u002Fggerganov\u002Fwhisper.cpp\u002Ftree\u002Fmaster\u002Fsamples 中的 `jfk.wav`\n\n请按照[贡献指南中的开发流程部分](.\u002FCONTRIBUTING.md#development-workflow)来运行示例应用。\n\n## 模拟 `whisper.rn`\n\n我们提供了一个用于测试的 `whisper.rn` 模拟版本，可以在 Jest 中使用：\n\n```js\njest.mock('whisper.rn', () => require('whisper.rn\u002Fjest-mock'))\n```\n\n## 使用 `whisper.rn` 的应用\n\n- [BRICKS](https:\u002F\u002Fbricks.tools)：我们的产品，用于以简单方式构建交互式标牌。我们提供 LLM 功能作为生成式 LLM\u002F助手。\n- ...（欢迎任何贡献）\n\n## Node.js 绑定\n\n- [whisper.node](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.node)：`whisper.cpp` 的另一个 Node.js 绑定，但其 API 与 `whisper.rn` 相同。\n\n## 贡献\n\n请参阅 [贡献指南](CONTRIBUTING.md) 了解如何为仓库做出贡献以及开发流程。\n\n## 故障排除\n\n如果在使用 `whisper.rn` 时遇到任何问题，请参阅 [故障排除](docs\u002FTROUBLESHOOTING.md)。\n\n## 许可证\n\nMIT\n\n---\n\n由 [create-react-native-library](https:\u002F\u002Fgithub.com\u002Fcallstack\u002Freact-native-builder-bob) 制作\n\n---\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fbricks.tools\">\n    \u003Cimg width=\"90px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmybigday_whisper.rn_readme_2c0e3812eba2.png\">\n  \u003C\u002Fa>\n  \u003Cp align=\"center\">\n    由 \u003Ca href=\"https:\u002F\u002Fbricks.tools\">BRICKS\u003C\u002Fa> 构建并维护。\n  \u003C\u002Fp>\n\u003C\u002Fp>","# whisper.rn 快速上手指南\n\n`whisper.rn` 是 [whisper.cpp](https:\u002F\u002Fgithub.com\u002Fggerganov\u002Fwhisper.cpp) 的 React Native 绑定库，允许你在 iOS 和 Android 端高性能运行 OpenAI 的 Whisper 语音识别模型。\n\n## 环境准备\n\n在开始之前，请确保你的开发环境满足以下要求：\n\n*   **系统要求**：\n    *   iOS: 15.0+ (若使用 Core ML 加速)\n    *   Android: 支持 armv8.2-a+fp16 的设备\n*   **前置依赖**：\n    *   Node.js & npm\u002Fyarn\n    *   React Native 项目环境\n    *   **iOS**: CocoaPods (`pod` 命令)\n    *   **Android**: NDK (推荐版本 `24.0.8215888` 或更高，特别是在 Apple Silicon Mac 上)\n    *   **Expo 用户**: 必须使用 `expo prebuild` 进行原生构建，不支持纯 Expo Go。\n\n## 安装步骤\n\n### 1. 安装依赖包\n\n在项目根目录执行：\n\n```sh\nnpm install whisper.rn\n```\n\n### 2. iOS 配置\n\n安装完成后，重新安装 CocoaPods 依赖：\n\n```sh\ncd ios && pod-install && cd ..\n# 或者\ncd ios && pod install && cd ..\n```\n\n*   **可选配置**：默认使用预编译的 `rnwhisper.xcframework`。如需从源码构建，请在 `Podfile` 中设置 `RNWHISPER_BUILD_FROM_SOURCE=1`。\n*   **大模型支持**：若使用 `medium` 或 `large` 模型，建议在 Xcode 项目中启用 `Extended Virtual Addressing` 能力。\n\n### 3. Android 配置\n\n如果项目启用了 ProGuard\u002FR8，请在 `android\u002Fapp\u002Fproguard-rules.pro` 中添加以下规则以防代码混淆：\n\n```proguard\n# whisper.rn\n-keep class com.rnwhisper.** { *; }\n```\n\n*   **NDK 版本**：确保 `android\u002Fbuild.gradle` 中指定了兼容的 NDK 版本：\n    ```gradle\n    buildToolsVersion = \"...\"\n    ndkVersion = \"24.0.8215888\" \u002F\u002F 推荐\n    ```\n\n### 4. 资源文件配置 (可选)\n\n如果你打算将模型文件 (.bin) 或音频文件打包进应用（通过 `require` 引入），需要修改 `metro.config.js` 以支持二进制扩展名：\n\n```js\nconst defaultAssetExts = require('metro-config\u002Fsrc\u002Fdefaults\u002Fdefaults').assetExts\n\nmodule.exports = {\n  \u002F\u002F ...\n  resolver: {\n    assetExts: [\n      ...defaultAssetExts,\n      'bin', \u002F\u002F whisper 模型文件\n      'mil', \u002F\u002F CoreML 模型文件\n    ],\n  },\n}\n```\n> **注意**：打包大模型会显著增加应用体积。Whisper `large` 模型原始文件超过 2GB，无法直接通过 RN 打包，建议使用量化版本（如 `ggml-large-v3-q5_0.bin`）。\n\n## 基本使用\n\n### 1. 准备模型文件\n\n你需要下载 `.bin` 格式的 GGML 模型文件。可以从 [Hugging Face](https:\u002F\u002Fhuggingface.co\u002Fggerganov\u002Fwhisper.cpp) 获取。\n示例使用 `tiny.en` 模型。\n\n### 2. 代码示例\n\n以下是最基础的转录流程：初始化上下文 -> 执行转录 -> 获取结果。\n\n```js\nimport { initWhisper } from 'whisper.rn'\n\n\u002F\u002F 1. 初始化 Whisper 上下文\n\u002F\u002F filePath 可以是本地绝对路径 ('file:\u002F\u002F...') 或通过 require 引入的资产\nconst whisperContext = await initWhisper({\n  filePath: 'file:\u002F\u002F...\u002Fggml-tiny.en.bin', \n  \u002F\u002F 如果使用 iOS Core ML 加速，可在此处配置 coreMLModelAsset\n})\n\n\u002F\u002F 2. 准备音频文件路径\nconst sampleFilePath = 'file:\u002F\u002F...\u002Fsample.wav'\nconst options = { language: 'en' } \u002F\u002F 指定语言\n\n\u002F\u002F 3. 执行转录\nconst { stop, promise } = whisperContext.transcribe(sampleFilePath, options)\n\n\u002F\u002F 4. 等待结果\nconst { result } = await promise\n\nconsole.log('识别结果:', result)\n\n\u002F\u002F 如需中途停止，调用 stop()\n\u002F\u002F stop()\n```\n\n### 3. 使用资产文件 (Assets)\n\n如果你已将模型和音频文件放入项目 assets 目录：\n\n```js\nimport { initWhisper } from 'whisper.rn'\n\nconst whisperContext = await initWhisper({\n  filePath: require('..\u002Fassets\u002Fggml-tiny.en.bin'),\n})\n\nconst { stop, promise } = whisperContext.transcribe(\n  require('..\u002Fassets\u002Fsample.wav'),\n  { language: 'en' }\n)\n\nconst { result } = await promise\nconsole.log(result)\n```\n\n### 进阶功能提示\n\n*   **语音活动检测 (VAD)**：库内置了 Silero VAD 模型，可用于检测音频中的有效语音片段，减少无效转录。使用 `initWhisperVad` 初始化。\n*   **实时转录**：对于流式音频输入，可使用 `RealtimeTranscriber` 类，它集成了 VAD、自动切片和内存管理功能。需配合 `@fugood\u002Freact-native-audio-pcm-stream` 使用。\n*   **模型选择**：生产环境建议根据设备性能选择模型。`tiny` 和 `base` 适合移动端实时场景；`small` 及以上模型在移动端推理速度较慢，建议仅在离线高算力场景或配合服务器使用。","某跨平台团队正在开发一款面向户外记者的移动端新闻采集 App，需要在无网络环境下实时将采访录音转为文字草稿。\n\n### 没有 whisper.rn 时\n- **依赖云端服务**：必须将录音上传至服务器处理，在信号弱的野外场景下经常超时失败，导致工作流中断。\n- **开发成本高昂**：团队需分别编写 iOS (CoreML) 和 Android (TFLite) 的原生语音识别桥接代码，维护两套逻辑耗时费力。\n- **隐私合规风险**：敏感采访内容需传输至第三方服务器，难以满足新闻媒体对数据本地化存储的严格合规要求。\n- **响应延迟严重**：录音上传、排队、推理再回传的全链路耗时过长，记者无法在现场即时核对转录准确性。\n\n### 使用 whisper.rn 后\n- **纯离线运行**：利用 whisper.rn 集成的 whisper.cpp 高性能引擎，直接在手机本地完成推理，彻底摆脱网络限制。\n- **一套代码通吃**：通过 React Native 统一接口调用，仅需一次集成即可同时支持 iOS 和 Android，大幅缩短研发周期。\n- **数据不出设备**：所有音频处理均在用户设备内存中完成，从根源上杜绝了数据泄露风险，轻松通过安全审计。\n- **实时反馈体验**：结合内置的 VAD（语音活动检测）功能，可精准截取人声片段并秒级输出文本，实现“边说边转”的流畅体验。\n\nwhisper.rn 让高性能离线语音识别在跨平台移动应用中变得触手可及，真正实现了数据隐私与开发效率的双赢。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmybigday_whisper.rn_55072111.png","mybigday","BRICKS","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmybigday_305f0ffc.png","BRICKS DISPLAY INC.",null,"hello@bricks.tools","https:\u002F\u002Fbricks.tools","https:\u002F\u002Fgithub.com\u002Fmybigday",[85,89,93,97,101,105,109,112,115,119],{"name":86,"color":87,"percentage":88},"C++","#f34b7d",54.5,{"name":90,"color":91,"percentage":92},"C","#555555",26.8,{"name":94,"color":95,"percentage":96},"Metal","#8f14e9",10.9,{"name":98,"color":99,"percentage":100},"TypeScript","#3178c6",4.4,{"name":102,"color":103,"percentage":104},"Objective-C","#438eff",2.4,{"name":106,"color":107,"percentage":108},"Shell","#89e051",0.2,{"name":110,"color":111,"percentage":108},"Objective-C++","#6866fb",{"name":113,"color":114,"percentage":108},"Java","#b07219",{"name":116,"color":117,"percentage":118},"CMake","#DA3434",0.1,{"name":120,"color":121,"percentage":118},"Ruby","#701516",762,61,"2026-04-15T16:44:19","MIT",4,"iOS, Android","非必需。iOS 端 VAD 功能可选开启 GPU 加速；Android 端依赖 NDK 编译优化（armv8.2-a+fp16），未提及具体桌面级显卡或 CUDA 需求。","未说明（受限于移动设备内存，大模型如 large 需注意包体积限制）",{"notes":131,"python":132,"dependencies":133},"1. 这是一个 React Native 库，主要用于 iOS 和 Android 移动端，而非传统的 Linux\u002FWindows 服务器环境。\n2. iOS 若使用 medium 或 large 模型，建议开启 'Extended Virtual Addressing' 能力。\n3. Android 在 Apple Silicon Mac 上构建时，推荐 NDK 版本为 24.0.8215888 或更高。\n4. 若通过 assets 打包模型文件，需注意 RN 打包器不支持超过 2GB 的单文件，因此无法直接打包原始 f16 large 模型（2.9GB），建议使用量化模型。\n5. 支持 Core ML (iOS 15.0+) 加速，需额外下载对应的 .mlmodelc 文件。","不适用 (基于 React Native\u002FNode.js)",[134,135,136,137,138],"react-native","whisper.cpp (底层核心)","@fugood\u002Freact-native-audio-pcm-stream (实时转录可选)","react-native-fs (或兼容的文件系统模块)","NDK r24+ (Android 构建必需)",[21],[141,134,142,143,144],"openai","whisper","whisper-cpp","speech-recognition","2026-03-27T02:49:30.150509","2026-04-19T09:17:44.101786",[148,153,158,163,168,173],{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},42059,"在 M3 芯片上构建时遇到 'amx\u002Famx.h' file not found 错误怎么办？","这是因为 `whisper.rn@0.4.0-rc.11` 版本缺少 amx 文件导致的 CMake 错误。请升级安装 `whisper.rn@0.4.0-rc.12` 或更高版本来修复此问题。由于当时 `latest` 标签仍指向旧版本，建议显式指定版本安装：\n```sh\nnpm install whisper.rn@0.4.0-rc.12\n```\n该版本已在 iOS 和 Android 上验证可成功编译。","https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F285",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},42060,"iOS 构建时报错 `'RNWhisperSpec\u002FRNWhisperSpec.h' file not found` 如何解决？","此问题通常出现在 React Native 新版本架构（New Architecture）或 Expo 52 (RN v0.77) 环境中，原因是 codegen 无法正确解析包。最直接的临时修复方法是使用 `patch-package` 修改 `whisper.rn` 的 `package.json` 文件，在 `exports` 字段中显式添加对 `package.json` 的引用：\n```json\n\"exports\": {\n  \"...\": \"...\",\n  \".\u002Fpackage.json\": \".\u002Fpackage.json\"\n}\n```\n此外，确保已升级到包含修复的版本（如 `0.4.0-rc.10` 及以上）。如果问题依旧，可能需要检查是否启用了新架构并清理构建缓存 (`xcodebuild clean`)。","https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F277",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},42061,"如何在 Expo Dev Client 中使用 whisper.rn 并加载本地模型资产？","whisper.rn 支持在 Expo Dev Client 中使用（无需 eject），但加载本地模型资产需要特殊处理。React Native 通常使用 `require` 和 `Image.resolveAssetSource` 来处理资产，但在 release 模式下会返回文件路径而非 URL。\n解决方案是参考官方示例或社区项目（如 `whisper-rn-expo-dev-client`），确保在代码中正确处理资产路径的解析。维护者已测试通过 `eas-cli` 构建本地 dev-client 可以正常工作，关键在于正确配置资产加载逻辑以适配 debug 和 release 模式的不同行为。","https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F61",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},42062,"为什么在 iOS 上使用 CoreML 时仍然需要捆绑 CPU 模型？何时会回退到 CPU？","目前库的设计可能包含回退机制，即在 CoreML 不可用或初始化失败时自动切换到 CPU 模式（基于 ggml\u002Fwhisper.cpp）。虽然文档未详细说明具体触发条件，但这通常是为了兼容性保障。如果您希望深入研究 GGML 的工作原理及回退机制，建议参考 `ggml`、`llama.cpp` 和 `whisper.cpp` 的官方仓库及社区项目，大部分底层逻辑在这些项目中实现。目前暂无选项强制仅使用 CoreML 而完全排除 CPU 模型捆绑。","https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F93",{"id":169,"question_zh":170,"answer_zh":171,"source_url":172},42063,"移动端运行转录性能较低（很慢），如何优化？","性能问题可能源于模型选择或绑定层。首先尝试使用量化程度更高的模型（如您正在使用的 `ggml-base-q5_1.bin` 已经是量化模型，可尝试更小的模型如 `tiny` 或 `base` 的其他量化版本）。\n其次，建议创建一个最小化示例程序来定位瓶颈是在 `whisper.cpp` 核心库还是 React Native 的绑定层。如果可能，对比原生 `whisper.cpp` 在相同设备上的运行速度，以排除 RN 桥接带来的开销。目前社区尚未有统一的银弹配置，需根据具体设备性能调整模型大小。","https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F263",{"id":174,"question_zh":175,"answer_zh":176,"source_url":177},42064,"如何在实时转录（transcribeRealtime）过程中保存录制的音频为 WAV 文件？","该功能已被社区贡献并合并。实现原理是在录音过程中收集音频采样数据，当停止或结束时，添加 RIFF WAVE fmt 头信息并将数据保存为文件。\n您可以查看相关的 Pull Request (#128) 获取具体实现代码。该功能允许用户在转录的同时保留原始录音文件，便于后续审计或重新处理。","https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F12",[179,184,189,194,199,204,209,214,219,224,229,234,239,244,249,254,259,264,269,274],{"id":180,"version":181,"summary_zh":182,"released_at":183},334137,"v0.6.0-rc.3","# [0.6.0-rc.3](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.6.0-rc.2...v0.6.0-rc.3) (2026-04-03)\n\n\n### 错误修复\n\n* iOS pod install ([03c5ebf](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F03c5ebf186a241a34be57313305f36321cb2f3c8))\n* **jsi：** 稳定原生任务生命周期（[#326](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F326)）（[ed59279](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Fed59279ed976ba1c82f98d8aa54a0da796844fdf)）","2026-04-03T10:12:28",{"id":185,"version":186,"summary_zh":187,"released_at":188},334138,"v0.6.0-rc.2","# [0.6.0-rc.2](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.6.0-rc.1...v0.6.0-rc.2) (2026-04-02)\n\n\n### 问题修复\n\n* **android:** 修正对所有不支持 ABI 的检查 ([93fb819](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F93fb819143e5a71db7ae40dd162432e0db0c1fe4))\n\n\n### 功能特性\n\n* 迁移到全 JSI 实现 ([#324](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F324)) ([b67b45c](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Fb67b45cbec334fbb7f191a6f447cf9b3aa74467e))\n* 同步 whisper.cpp ([36a8663](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F36a866317650fe5b34555875c48f795c02caf52a))","2026-04-02T09:42:15",{"id":190,"version":191,"summary_zh":192,"released_at":193},334139,"v0.6.0-rc.1","# [0.6.0-rc.1](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.6.0-rc.0...v0.6.0-rc.1) (2026-04-01)\n\n\n### 功能特性\n\n* 移除已弃用的 transcribeRealtime ([#300](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F300)) ([6e426ca](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F6e426caea269d386197d230d1e09d0437c056141))\n* 同步 whisper.cpp ([#323](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F323)) ([74b5a6e](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F74b5a6e95787cd22dd65279f6c84bd8d4ce10975))","2026-04-01T03:35:11",{"id":195,"version":196,"summary_zh":197,"released_at":198},334140,"v0.6.0-rc.0","* chore: 将构建脚本移至 example\u002F 目录 (4d32378)\n* feat: 同步 whisper.cpp (c665b1d)\n* refactor: 重构更高效的 RealtimeTranscriber (#321) (4634084) (@hans00)","2026-02-11T10:30:32",{"id":200,"version":201,"summary_zh":202,"released_at":203},334141,"v0.5.5","## [0.5.5](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.5.4...v0.5.5) (2026-01-26)\n\n\n### Bug 修复\n\n* 同步 whisper.cpp 并修复 iOS 26.2 上的 CoreML 支持（[#318](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F318)）（[dd7cd00](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Fdd7cd00d5dab938d0e0695a8b69d72159a63b22d)）\n\n\n### 功能\n\n* 修正 whisper.cpp 提交（[7e6a4bc](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F7e6a4bce62f71a9fb39511b02b2cbbeb8502e2dc)）\n* 支持返回检测到的语言（[#320](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F320)）（[ea842ab](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Fea842ab364da3a9bac5a9dc2296a42655e2dccec)）\n* 同步 whisper.cpp（[a55ffee](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Fa55ffee8b04ebe8f63da5ca69fb87f8c6b09a6ea)）\n* 同步 whisper.cpp（[4bee51a](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F4bee51a87c88f5f62fb4595be52db6844d18f22e)）","2026-01-26T05:52:44",{"id":205,"version":206,"summary_zh":207,"released_at":208},334142,"v0.5.4","## [0.5.4](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.5.3...v0.5.4) (2025-12-08)\n\n### 功能\n\n* **实时转录：** 提升低性能 CPU 上的性能 ([#312](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F312)) ([89a7724](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F89a7724e613228b9740c12f4529e4997ec84867c)) (@hans00)\n* 同步 whisper.cpp ([cb47b65](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Fcb47b652514169ea0cfedd59e3340a3e6f03cfe2))","2025-12-08T06:16:19",{"id":210,"version":211,"summary_zh":212,"released_at":213},334143,"v0.5.3","## [0.5.3](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.5.2...v0.5.3) (2025-12-04)\r\n\r\n\r\n### 功能特性\r\n\r\n* **iOS:** 使用 ggml-metal.metal 替代预编译的 metallib 文件（[b6a4259](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Fb6a42590103da7567c9a229a2bc0ecbca0dd7d8c)）\r\n* 同步 whisper.cpp（[a7f2be8](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Fa7f2be887e292d4e519c1f1f0fc7e08de32bd501)）","2025-12-04T08:11:34",{"id":215,"version":216,"summary_zh":217,"released_at":218},334144,"v0.5.2","## [0.5.2](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.5.1...v0.5.2) (2025-10-29)\n\n\n### Bug 修复\n\n* **android:** initContextWithAsset 和 initContextWithInputStream 中缺少 context_id 参数 ([d2d589f](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Fd2d589f90f288fe9edb572c2f67147a06adecde7))\n\n\n### 功能\n\n* 暴露 n_processors 完整参数，并使用 whisper_full_parallel ([e84fee8](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Fe84fee84ef1efdc1a450c5fce8dc0bbba6fbc9e7))\n* 同步 whisper.cpp ([#309](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F309)) ([1f65737](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F1f65737a312ea482668f57961182db42dfaee7fc))","2025-10-29T07:00:25",{"id":220,"version":221,"summary_zh":222,"released_at":223},334145,"v0.5.1","## [0.5.1](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.5.0...v0.5.1)（2025-10-11）\n\n\n### Bug 修复\n\n* **cpp:** 在 C++20 下的构建错误 ([46a9ff2](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F46a9ff2c94f6d89963f40bb51766c76452634507))\n* **iOS, podspec:** 将 C++ 标准从 C++17 更新至 C++20 ([739936d](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F739936d510f70125f18503557c9bc28b3b37aca2))，关闭 [#304](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F304)\n\n\n### 功能特性\n\n* **Android:** 支持 16KB 页面大小 ([2d39f2d](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F2d39f2d510a93e1095d1ecf34a2e152fc7e0f02f))\n* **iOS:** 设置 Metal 的最低 Metal 版本及 iOS 版本 ([121daa1](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F121daa1a55bab8fc9f8ef16731477c881599738f))\n* 同步 whisper.cpp ([#306](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F306)) ([e59b91a](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Fe59b91adcb0355c8ef18ba1f2ba7ea8f7b6a18cb))","2025-10-11T12:41:54",{"id":225,"version":226,"summary_zh":227,"released_at":228},334146,"v0.5.0","# [0.5.0](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.5.0-rc.10...v0.5.0) (2025-09-14)\n\n### 功能\n\n- 新增：同步 whisper.cpp 5c9bc687a4f05f1dca5bd4397654622881472a6d\n- 新增：监听原生日志 (#295)\n- 新增：实现 JSI 函数 (#292)\n- 新增：在纯 JavaScript 中实现实时转写 (#291)\n\n弃用警告：`context.transcribeRealtime` 和 `AudioSessionSettingIos` 已被弃用，将在 v0.6 中移除，请改用新的 [实时转写](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn?tab=readme-ov-file#realtime-transcription) 功能。","2025-09-14T06:27:45",{"id":230,"version":231,"summary_zh":232,"released_at":233},334147,"v0.5.0-rc.10","# [0.5.0-rc.10](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.5.0-rc.9...v0.5.0-rc.10) (2025-09-13)\r\n\r\n\r\n### Features\r\n\r\n* **ts, realtime-transcription:** add onBeginTranscribe to determine the transcription ([480055b](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F480055b848f1907ed743740b9d86abd8fcf6122e))","2025-09-13T05:24:09",{"id":235,"version":236,"summary_zh":237,"released_at":238},334148,"v0.5.0-rc.8","# [0.5.0-rc.8](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.5.0-rc.7...v0.5.0-rc.8) (2025-08-25)\r\n\r\n\r\n### Bug Fixes\r\n\r\n* **ts:** remove unused SharedArrayBuffer type ([e931dfc](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Fe931dfc40792d8740df825ab449882c77fcbef58))\r\n","2025-08-25T06:17:28",{"id":240,"version":241,"summary_zh":242,"released_at":243},334149,"v0.5.0-rc.7","# [0.5.0-rc.7](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.5.0-rc.6...v0.5.0-rc.7) (2025-08-05)\r\n\r\n\r\n### Bug Fixes\r\n\r\n* **android:** load librnwhisper if no fp16 support ([4e5e0a2](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F4e5e0a279a4471653fbe89a603c58b57a7831642))\r\n\r\n\r\n### Features\r\n\r\n* **ts:** lazy install JSI bindings ([75b6ebd](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F75b6ebd978e6d046d52580c33d112077da0ba291))","2025-08-05T08:21:27",{"id":245,"version":246,"summary_zh":247,"released_at":248},334150,"v0.5.0-rc.6","# [0.5.0-rc.6](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.5.0-rc.5...v0.5.0-rc.6) (2025-07-16)\r\n\r\n\r\n### Bug Fixes\r\n\r\n* **android:** check lib loaded before installJSIBindings \u002F toggleNativeLog ([ba3976f](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Fba3976fe9b6497c9f229be2400eb8c88d5735ce0))\r\n\r\n\r\n### Features\r\n\r\n* **android:** add armv8.2-a (no fp16) lib variant ([99f9763](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F99f9763b26ee7eda86626b1eb77f06915460c96a))","2025-07-16T05:27:38",{"id":250,"version":251,"summary_zh":252,"released_at":253},334151,"v0.5.0-rc.4","# [0.5.0-rc.4](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.5.0-rc.3...v0.5.0-rc.4) (2025-07-11)\r\n\r\n\r\n### Bug Fixes\r\n\r\n* **cpp:** add missing vad params ([0152db5](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F0152db5e9b705d42d7a03440fbe970b5897184e3))","2025-07-11T11:52:35",{"id":255,"version":256,"summary_zh":257,"released_at":258},334152,"v0.5.0-rc.3","# [0.5.0-rc.3](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.5.0-rc.2...v0.5.0-rc.3) (2025-07-11)\r\n\r\n\r\n### Features\r\n\r\n* listen native logs ([#295](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F295)) ([08303ea](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F08303ea5d79a9af6c19df08dfc995cbebd841d07))","2025-07-11T07:24:56",{"id":260,"version":261,"summary_zh":262,"released_at":263},334153,"v0.5.0-rc.2","# [0.5.0-rc.2](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.5.0-rc.1...v0.5.0-rc.2) (2025-07-10)\r\n\r\n\r\n### Features\r\n\r\n* implement realtime transcription in pure JS ([#291](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F291)) ([aed510c](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Faed510c4b699940d8d00fcd91c9b5e1d0f5f1d81)) (`WhisperContext.transcribeRealtime` is now deprecated)","2025-07-10T12:21:36",{"id":265,"version":266,"summary_zh":267,"released_at":268},334154,"v0.5.0-rc.0","# [0.5.0-rc.0](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.4.3...v0.5.0-rc.0) (2025-07-07)\r\n\r\n### Features\r\n\r\n* implement JSI functions ([#292](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F292)) ([fee687f](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Ffee687f660fb6cdc8fedc56ee5be683a13525683))","2025-07-07T04:53:14",{"id":270,"version":271,"summary_zh":272,"released_at":273},334155,"v0.4.2","## [0.4.2](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.4.1...v0.4.2) (2025-06-30)\r\n\r\n\r\n### Bug Fixes\r\n\r\n* **vad:** detect speech with pcm data ([9a83652](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F9a836528eb70dc64f7afef87aaee2e4bac148948))","2025-06-30T07:26:39",{"id":275,"version":276,"summary_zh":277,"released_at":278},334156,"v0.4.1","## [0.4.1](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcompare\u002Fv0.4.0...v0.4.1) (2025-06-27)\r\n\r\n\r\n### Bug Fixes\r\n\r\n* **ios:** ggml-metal availability check ([367e710](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002F367e710bd428d0a5ecb95548d10990ba3723cf7e))\r\n\r\n\r\n### Features\r\n\r\n* implement VAD context ([#289](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fissues\u002F289)) ([f56d967](https:\u002F\u002Fgithub.com\u002Fmybigday\u002Fwhisper.rn\u002Fcommit\u002Ff56d9672c0d3f5eabc805e8871194e772a721017))","2025-06-27T06:11:53"]