Я успешно использовал sfspeechRecognizer для транскрибирования небольших аудиофайлов. Но я хочу транскрибировать речь в текст из 30-минутного аудио-файла. Я придумал это решение, но оно не работает вообще. p> [Утилита] +[Afaggregator logdictationFailedWiterRor:] error domain = kafassistanterrordomain code = 203 "corpt" userinfo = {nslocalizedDescription = corpt, nsunderlyingError = 0x28315ca80 {ошибка domain = sirispeecherrord код = 102 "(null)"/pully "/null)"/Pullord pully "/null" (null) "/pull etull)
< /blockquote>
Ошибка распознавания: corpt < /p>
< /blockquote>
Код: < /< / p>
let url = Bundle.main.url(forResource: "1-2-3", withExtension: "m4a")!
let transcriber = AudioTranscriber()
transcriber.transcribeAudio(at: url)
< /code>
import Speech
import AVFoundation
class AudioTranscriber {
private let speechRecognizer: SFSpeechRecognizer?
private let audioEngine = AVAudioEngine()
private var recognitionRequest: SFSpeechAudioBufferRecognitionRequest?
private var recognitionTask: SFSpeechRecognitionTask?
init(locale: Locale? = nil) {
speechRecognizer = SFSpeechRecognizer(locale: locale ?? Locale(identifier: "uk"))
}
func transcribeAudio(at url: URL) {
if let recognitionTask = recognitionTask {
recognitionTask.cancel()
self.recognitionTask = nil
}
guard let audioFile = try? AVAudioFile(forReading: url) else {
print("Failed to open audio file")
return
}
recognitionRequest = SFSpeechAudioBufferRecognitionRequest()
guard let recognitionRequest = recognitionRequest else {
print("Unable to create recognition request")
return
}
recognitionTask = speechRecognizer?.recognitionTask(with: recognitionRequest) { result, error in
if let error = error {
print("Recognition error: \(error.localizedDescription)")
return
}
if let result = result {
let transcription = result.bestTranscription.formattedString
print("Transcription: \(transcription)")
}
}
recognitionRequest.shouldReportPartialResults = true
let audioPlayerNode = AVAudioPlayerNode()
audioEngine.attach(audioPlayerNode)
let format = audioEngine.inputNode.outputFormat(forBus: 0)
audioEngine.inputNode.removeTap(onBus: 0)
audioEngine.inputNode.installTap(onBus: 0, bufferSize: 1024, format: format) { buffer, time in
self.recognitionRequest?.append(buffer)
}
audioEngine.connect(audioPlayerNode, to: audioEngine.mainMixerNode, format: audioFile.processingFormat)
let bufferSize: AVAudioFrameCount = 1024
let buffer = AVAudioPCMBuffer(pcmFormat: audioFile.processingFormat, frameCapacity: bufferSize)!
do {
try audioFile.read(into: buffer)
} catch {
print("Error reading audio file: \(error.localizedDescription)")
return
}
audioPlayerNode.scheduleBuffer(buffer) {
print("audioPlayerNode.scheduleBuffer(buffer) completion()")
self.audioEngine.stop()
self.recognitionRequest?.endAudio()
}
audioEngine.prepare()
do {
try audioEngine.start()
} catch {
print("Audio engine failed to start: \(error.localizedDescription)")
return
}
audioPlayerNode.play()
}
}
Подробнее здесь: https://stackoverflow.com/questions/764 ... in-ios-app
Как транскрибировать большой аудиофайл в приложении iOS? ⇐ IOS
Программируем под IOS
-
Anonymous
1739326646
Anonymous
Я успешно использовал sfspeechRecognizer для транскрибирования небольших аудиофайлов. Но я хочу транскрибировать речь в текст из 30-минутного аудио-файла. Я придумал это решение, но оно не работает вообще. p> [Утилита] +[Afaggregator logdictationFailedWiterRor:] error domain = kafassistanterrordomain code = 203 "corpt" userinfo = {nslocalizedDescription = corpt, nsunderlyingError = 0x28315ca80 {ошибка domain = sirispeecherrord код = 102 "(null)"/pully "/null)"/Pullord pully "/null" (null) "/pull etull)
< /blockquote>
Ошибка распознавания: corpt < /p>
< /blockquote>
Код: < /< / p>
let url = Bundle.main.url(forResource: "1-2-3", withExtension: "m4a")!
let transcriber = AudioTranscriber()
transcriber.transcribeAudio(at: url)
< /code>
import Speech
import AVFoundation
class AudioTranscriber {
private let speechRecognizer: SFSpeechRecognizer?
private let audioEngine = AVAudioEngine()
private var recognitionRequest: SFSpeechAudioBufferRecognitionRequest?
private var recognitionTask: SFSpeechRecognitionTask?
init(locale: Locale? = nil) {
speechRecognizer = SFSpeechRecognizer(locale: locale ?? Locale(identifier: "uk"))
}
func transcribeAudio(at url: URL) {
if let recognitionTask = recognitionTask {
recognitionTask.cancel()
self.recognitionTask = nil
}
guard let audioFile = try? AVAudioFile(forReading: url) else {
print("Failed to open audio file")
return
}
recognitionRequest = SFSpeechAudioBufferRecognitionRequest()
guard let recognitionRequest = recognitionRequest else {
print("Unable to create recognition request")
return
}
recognitionTask = speechRecognizer?.recognitionTask(with: recognitionRequest) { result, error in
if let error = error {
print("Recognition error: \(error.localizedDescription)")
return
}
if let result = result {
let transcription = result.bestTranscription.formattedString
print("Transcription: \(transcription)")
}
}
recognitionRequest.shouldReportPartialResults = true
let audioPlayerNode = AVAudioPlayerNode()
audioEngine.attach(audioPlayerNode)
let format = audioEngine.inputNode.outputFormat(forBus: 0)
audioEngine.inputNode.removeTap(onBus: 0)
audioEngine.inputNode.installTap(onBus: 0, bufferSize: 1024, format: format) { buffer, time in
self.recognitionRequest?.append(buffer)
}
audioEngine.connect(audioPlayerNode, to: audioEngine.mainMixerNode, format: audioFile.processingFormat)
let bufferSize: AVAudioFrameCount = 1024
let buffer = AVAudioPCMBuffer(pcmFormat: audioFile.processingFormat, frameCapacity: bufferSize)!
do {
try audioFile.read(into: buffer)
} catch {
print("Error reading audio file: \(error.localizedDescription)")
return
}
audioPlayerNode.scheduleBuffer(buffer) {
print("audioPlayerNode.scheduleBuffer(buffer) completion()")
self.audioEngine.stop()
self.recognitionRequest?.endAudio()
}
audioEngine.prepare()
do {
try audioEngine.start()
} catch {
print("Audio engine failed to start: \(error.localizedDescription)")
return
}
audioPlayerNode.play()
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/76445624/how-do-i-transcribe-a-big-audio-file-in-ios-app[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия