Use 320ms streaming chunks and fix bundle ID
- Switch from 160ms to 320ms chunk size for better streaming accuracy - Fix corrupted bundle identifier (was "--com.jakeshore.VoiceInk-com.jakeshore.VoiceInk") Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
de1c1e51aa
commit
f6a613e8ef
@ -488,7 +488,7 @@
|
|||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 14.0;
|
MACOSX_DEPLOYMENT_TARGET = 14.0;
|
||||||
MARKETING_VERSION = 1.69;
|
MARKETING_VERSION = 1.69;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "--com.jakeshore.VoiceInk-com.jakeshore.VoiceInk";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.jakeshore.VoiceInk";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG ENABLE_NATIVE_SPEECH_ANALYZER $(inherited)";
|
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG ENABLE_NATIVE_SPEECH_ANALYZER $(inherited)";
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
@ -525,7 +525,7 @@
|
|||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 14.0;
|
MACOSX_DEPLOYMENT_TARGET = 14.0;
|
||||||
MARKETING_VERSION = 1.69;
|
MARKETING_VERSION = 1.69;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "--com.jakeshore.VoiceInk-com.jakeshore.VoiceInk";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.jakeshore.VoiceInk";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "ENABLE_NATIVE_SPEECH_ANALYZER $(inherited)";
|
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "ENABLE_NATIVE_SPEECH_ANALYZER $(inherited)";
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
|
|||||||
@ -141,7 +141,7 @@ class ParakeetTranscriptionService: TranscriptionService {
|
|||||||
for: .applicationSupportDirectory, in: .userDomainMask
|
for: .applicationSupportDirectory, in: .userDomainMask
|
||||||
).first!
|
).first!
|
||||||
let appDirectory = applicationSupportURL.appendingPathComponent("FluidAudio", isDirectory: true)
|
let appDirectory = applicationSupportURL.appendingPathComponent("FluidAudio", isDirectory: true)
|
||||||
return appDirectory.appendingPathComponent("Models/parakeet-eou-streaming/160ms", isDirectory: true)
|
return appDirectory.appendingPathComponent("Models/parakeet-eou-streaming/320ms", isDirectory: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Downloads EOU models if not already present
|
/// Downloads EOU models if not already present
|
||||||
@ -150,10 +150,10 @@ class ParakeetTranscriptionService: TranscriptionService {
|
|||||||
let encoderPath = modelsDir.appendingPathComponent("streaming_encoder.mlmodelc")
|
let encoderPath = modelsDir.appendingPathComponent("streaming_encoder.mlmodelc")
|
||||||
|
|
||||||
if !FileManager.default.fileExists(atPath: encoderPath.path) {
|
if !FileManager.default.fileExists(atPath: encoderPath.path) {
|
||||||
logger.notice("🎙️ Downloading Parakeet EOU 160ms models for streaming preview...")
|
logger.notice("🎙️ Downloading Parakeet EOU 320ms models for streaming preview...")
|
||||||
let baseDir = modelsDir.deletingLastPathComponent().deletingLastPathComponent()
|
let baseDir = modelsDir.deletingLastPathComponent().deletingLastPathComponent()
|
||||||
try await DownloadUtils.downloadRepo(.parakeetEou160, to: baseDir)
|
try await DownloadUtils.downloadRepo(.parakeetEou320, to: baseDir)
|
||||||
logger.notice("🎙️ EOU 160ms models downloaded successfully")
|
logger.notice("🎙️ EOU 320ms models downloaded successfully")
|
||||||
}
|
}
|
||||||
|
|
||||||
return modelsDir
|
return modelsDir
|
||||||
@ -172,10 +172,10 @@ class ParakeetTranscriptionService: TranscriptionService {
|
|||||||
// Download EOU models if needed
|
// Download EOU models if needed
|
||||||
let modelsDir = try await ensureEouModelsDownloaded()
|
let modelsDir = try await ensureEouModelsDownloaded()
|
||||||
|
|
||||||
// Create StreamingEouAsrManager with 160ms chunks for lowest latency preview
|
// Create StreamingEouAsrManager with 320ms chunks for accuracy
|
||||||
// In HYBRID mode: streaming is just for visual feedback, batch provides accuracy
|
// In HYBRID mode: streaming provides visual feedback, batch provides final accuracy
|
||||||
// EOU debounce of 1280ms means end-of-utterance detection after ~1.3s of silence
|
// EOU debounce of 1280ms means end-of-utterance detection after ~1.3s of silence
|
||||||
let manager = StreamingEouAsrManager(chunkSize: .ms160, eouDebounceMs: 1280)
|
let manager = StreamingEouAsrManager(chunkSize: .ms320, eouDebounceMs: 1280)
|
||||||
streamingEouManager = manager
|
streamingEouManager = manager
|
||||||
|
|
||||||
// Load Parakeet EOU models
|
// Load Parakeet EOU models
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user