fix: record transcription audio as wav
This commit is contained in:
@@ -276,7 +276,7 @@
|
|||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 32;
|
CURRENT_PROJECT_VERSION = 33;
|
||||||
DEVELOPMENT_ASSET_PATHS = "\"meetingnotes/Preview Content\"";
|
DEVELOPMENT_ASSET_PATHS = "\"meetingnotes/Preview Content\"";
|
||||||
DEVELOPMENT_TEAM = G9LVHZAJNX;
|
DEVELOPMENT_TEAM = G9LVHZAJNX;
|
||||||
ENABLE_HARDENED_RUNTIME = YES;
|
ENABLE_HARDENED_RUNTIME = YES;
|
||||||
@@ -290,7 +290,7 @@
|
|||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 15.0;
|
MACOSX_DEPLOYMENT_TARGET = 15.0;
|
||||||
MARKETING_VERSION = 1.1.20;
|
MARKETING_VERSION = 1.1.21;
|
||||||
ONLY_ACTIVE_ARCH = NO;
|
ONLY_ACTIVE_ARCH = NO;
|
||||||
OTHER_SWIFT_FLAGS = "$(inherited) -D ENABLE_TCC_SPI";
|
OTHER_SWIFT_FLAGS = "$(inherited) -D ENABLE_TCC_SPI";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = net.jamesbone.meetingnotes;
|
PRODUCT_BUNDLE_IDENTIFIER = net.jamesbone.meetingnotes;
|
||||||
@@ -312,7 +312,7 @@
|
|||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 32;
|
CURRENT_PROJECT_VERSION = 33;
|
||||||
DEVELOPMENT_ASSET_PATHS = "\"meetingnotes/Preview Content\"";
|
DEVELOPMENT_ASSET_PATHS = "\"meetingnotes/Preview Content\"";
|
||||||
DEVELOPMENT_TEAM = G9LVHZAJNX;
|
DEVELOPMENT_TEAM = G9LVHZAJNX;
|
||||||
ENABLE_HARDENED_RUNTIME = YES;
|
ENABLE_HARDENED_RUNTIME = YES;
|
||||||
@@ -326,7 +326,7 @@
|
|||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 15.0;
|
MACOSX_DEPLOYMENT_TARGET = 15.0;
|
||||||
MARKETING_VERSION = 1.1.20;
|
MARKETING_VERSION = 1.1.21;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
OTHER_SWIFT_FLAGS = "$(inherited) -D ENABLE_TCC_SPI";
|
OTHER_SWIFT_FLAGS = "$(inherited) -D ENABLE_TCC_SPI";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = net.jamesbone.meetingnotes;
|
PRODUCT_BUNDLE_IDENTIFIER = net.jamesbone.meetingnotes;
|
||||||
|
|||||||
@@ -209,15 +209,18 @@ final class AudioManager: NSObject, ObservableObject {
|
|||||||
|
|
||||||
private func prepareAudioFiles() throws {
|
private func prepareAudioFiles() throws {
|
||||||
let settings: [String: Any] = [
|
let settings: [String: Any] = [
|
||||||
AVFormatIDKey: kAudioFormatMPEG4AAC,
|
AVFormatIDKey: kAudioFormatLinearPCM,
|
||||||
AVSampleRateKey: 16_000,
|
AVSampleRateKey: 16_000,
|
||||||
AVNumberOfChannelsKey: 1,
|
AVNumberOfChannelsKey: 1,
|
||||||
AVEncoderBitRateKey: 48_000
|
AVLinearPCMBitDepthKey: 16,
|
||||||
|
AVLinearPCMIsFloatKey: false,
|
||||||
|
AVLinearPCMIsBigEndianKey: false,
|
||||||
|
AVLinearPCMIsNonInterleaved: false
|
||||||
]
|
]
|
||||||
let base = FileManager.default.temporaryDirectory
|
let base = FileManager.default.temporaryDirectory
|
||||||
let id = sessionID.uuidString
|
let id = sessionID.uuidString
|
||||||
let micURL = base.appendingPathComponent("meetingnotes-\(id)-mic.m4a")
|
let micURL = base.appendingPathComponent("meetingnotes-\(id)-mic.wav")
|
||||||
let systemURL = base.appendingPathComponent("meetingnotes-\(id)-system.m4a")
|
let systemURL = base.appendingPathComponent("meetingnotes-\(id)-system.wav")
|
||||||
let newMicAudioFile = try AVAudioFile(
|
let newMicAudioFile = try AVAudioFile(
|
||||||
forWriting: micURL,
|
forWriting: micURL,
|
||||||
settings: settings,
|
settings: settings,
|
||||||
|
|||||||
@@ -275,6 +275,13 @@ final class CoderAPIClient {
|
|||||||
let framesPerChunk = preserveSpeakerIdentity
|
let framesPerChunk = preserveSpeakerIdentity
|
||||||
? max(1, input.length)
|
? max(1, input.length)
|
||||||
: AVAudioFramePosition(format.sampleRate * transcriptionChunkDuration)
|
: AVAudioFramePosition(format.sampleRate * transcriptionChunkDuration)
|
||||||
|
|
||||||
|
if fileURL.pathExtension.caseInsensitiveCompare("wav") == .orderedSame,
|
||||||
|
input.fileFormat.streamDescription.pointee.mFormatID == kAudioFormatLinearPCM,
|
||||||
|
input.length <= framesPerChunk {
|
||||||
|
return [AudioChunk(url: fileURL, offset: 0, isTemporary: false)]
|
||||||
|
}
|
||||||
|
|
||||||
var chunks: [AudioChunk] = []
|
var chunks: [AudioChunk] = []
|
||||||
var frameOffset: AVAudioFramePosition = 0
|
var frameOffset: AVAudioFramePosition = 0
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user