用户说话时开始录音。您只需告诉我们何时开始监听即可。然后我们会等待可听到的声音并开始录音。这主要用于用户语音输入和“开始说话”提示。
🍕 虚拟小费罐:https://amazon.com/hz/wishlist/ls/EE78A23EEGQB
使用 Swift Package Manager 将其添加到您的项目中。 在 Xcode 中,只需:File > Swift Packages > Add Package Dependency... 就完成了。 以下显示了传统项目的替代安装选项。
如果您已经在使用 CocoaPods,只需将 'FDSoundActivatedRecorder' 添加到您的 Podfile
,然后运行 pod install
。
如果您已经在使用 Carthage,只需将其添加到您的 Cartfile
github "fulldecent/FDSoundActivatedRecorder" ~> 0.1
然后运行 carthage update
来构建框架,并将构建的 FDSoundActivatedRecorder
框架拖到您的 Xcode 项目中。
首先,将 pod 'FDSoundActivatedRecorder', '~> 1.0.0'
添加到您的 Podfile 中进行安装。
使用以下命令导入项目
import FDSoundActivatedRecorder
然后使用以下命令开始监听
self.recorder = FDSoundActivatedRecorder()
self.recorder.delegate = self
self.recorder.startListening()
此项目中提供了完整的实现示例。
如果您的应用程序在 App Store 中,如果您能将您的应用程序添加到 https://cocoacontrols.cn/controls/fdsoundactivatedrecorder 中的“使用此控件的应用”和“我使用此控件”下,我将非常感谢。
如果您想将其用作常规录音机,而无需裁剪音频。
self.recorder.startListening()
self.recorder.startRecording()
self.recorder.stopAndSaveRecording()
完整API,来自 FDSoundActivatedRecorder.swift,复制如下
@objc protocol FDSoundActivatedRecorderDelegate {
/// A recording was triggered or manually started
func soundActivatedRecorderDidStartRecording(recorder: FDSoundActivatedRecorder)
/// No recording has started or been completed after listening for `TOTAL_TIMEOUT_SECONDS`
func soundActivatedRecorderDidTimeOut(recorder: FDSoundActivatedRecorder)
/// The recording and/or listening ended and no recording was captured
func soundActivatedRecorderDidAbort(recorder: FDSoundActivatedRecorder)
/// A recording was successfully captured
func soundActivatedRecorderDidFinishRecording(recorder: FDSoundActivatedRecorder, andSaved file: NSURL)
}
class FDSoundActivatedRecorder : NSObject {
/// A log-scale reading between 0.0 (silent) and 1.0 (loud), nil if not recording
dynamic var microphoneLevel: Double
/// Receiver for status updates
weak var delegate: FDSoundActivatedRecorderDelegate?
/// Listen and start recording when triggered
func startListening()
/// Go back in time and start recording `RISE_TRIGGER_INTERVALS` ago
func startRecording()
/// End the recording and send any processed & saved file to `delegate`
func stopAndSaveRecording()
/// End any recording or listening and discard any recorded files
func abort()
/// This is a PRIVATE method but it must be public because a selector is used in NSTimer (Swift bug)
func interval()
}
该库经过调整,可在安静或嘈杂的环境中使用 Apple 零售 iOS 设备进行人类语音检测。 欢迎您根据您的特殊需求调整此程序的音频检测常量。 以下是从 FDSoundActivatedRecorder.swift
中提取的算法工作原理的技术描述。
V Recording
O /-----------\
L / \Fall
U /Rise \
M / \
E -------- --------
Listening Done
INTERVAL
监听并保存音频电平[您的标志在这里
]
请联系 github.com@phor.net 讨论添加您的公司徽标以上并支持本项目。