我们有一些屏幕截图需要配音为各种语言,我们有目标语言的文本脚本,如下所示:
开始时间音频旁白 0:0 废话 nao lorep iposm... 1:20 xao dok dkjv dwv.... ..
我们可以单独记录上述每个单元,然后将其对齐在上面脚本中提到的正确开始时间。
例子:
输入:
输入N个计时值:0:0,1:20...然后输入N个录音
输出:
录音与上述时间一致。系统应单独检测上溢,而下溢则通过静默来填充。
是否有任何独立于平台的音频 api \ 软件或代码片段(最好是 python 中的代码片段)允许我们根据提供的时间对齐这些音频单元?
我正在开发一个在后台录制音频的 iOS 应用程序。这工作很好。
问题是当有电话进来时:当我打电话时,应用程序停止录制(这很好),但是当通话结束时,我需要应用程序再次开始录制。
是否可以 ?我怎样才能做到这一点 ?
谢谢大家。
更新
我使用 AudioQueueNewInput 来录制音频。现在我尝试使用此代码来接听来电:
AVAudioSession *session = [AVAudioSession sharedInstance];
NSError *categoryError = nil;
[session setActive: NO error: nil];
if (![session setCategory:AVAudioSessionCategoryPlayAndRecord
withOptions:AVAudioSessionCategoryOptionMixWithOthers
error:&categoryError]){
NSLog(@"Error"); //no error
}
[session setActive: YES error: nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleAudioSessionInterruption:)
name:AVAudioSessionInterruptionNotification
object:session];
Run Code Online (Sandbox Code Playgroud)
我可以通过 AVAudioSessionInterruptionOptionShouldResume 获取 handleAudioSessionInterruption 的通话结束,但是如何重新启动录音机?
我尝试使用再次调用 AudioQueueStart o 只是与我用来开始录制的功能相同的功能,但我看不到红色条(正在使用麦克风)来知道应用程序正在录制。怎么了 ?
我正在尝试在 Android 上同时录制和播放音频。但录制的音频有更多噪音,如 zzzzz...
我想过滤掉音频中的噪音。我的代码是
private void record() {
// Get the minimum buffer size required for the successful creation
// of an AudioRecord object.
int N = AudioRecord.getMinBufferSize(RECORDER_SAMPLERATE, RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING);
audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 8000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, N * 10,
AudioTrack.MODE_STREAM);
AudioRecord audioRecorder = null;
int bufferSizeInShorts;
int shortsRead;
short audioBuffer[];
try {
bufferSizeInShorts = (N / 2);
// Initialize Audio Recorder.
audioRecorder = new AudioRecord(MediaRecorder.AudioSource.VOICE_RECOGNITION, RECORDER_SAMPLERATE, RECORDER_CHANNELS,
RECORDER_AUDIO_ENCODING, N * 10);
NoiseSuppressor.create(audioRecorder.getAudioSessionId());
// Start Recording.
audioBuffer = new …Run Code Online (Sandbox Code Playgroud) 我正在使用SpeechRecognition包进行文本转语音。然而,它的 WAV 文件输入必须是单声道。当我使用arecord -D plughw:0 --duration=5 -f cd -vv ~/test.wav并使用它播放时aplay test.wav,我得到(它播放):
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Run Code Online (Sandbox Code Playgroud)
如何以arecord单声道录音?我也尝试添加--channels=1,但当它开始记录并显示有关其 ( Plug PCM: Route conversion PCM) 设置的信息时,它总是显示:
...
channels : 2
...
Run Code Online (Sandbox Code Playgroud)
我USB PnP Sound Device的设置显示通道为 1。即使我将其设置为 1,它也以立体声播放。怎么了?
我正在使用 HTML5 和 Javascript 制作录音机,并且不想包含任何第三方 API,我的第一步是使用<audio>标签和navigator.webkitGetUserMedia函数创建音频检索器和播放器,从麦克风获取音频并通过<audio>元素播放,但是此时我无法获取数组中的音频数据,我不知道该使用哪个函数做什么。
假设每个参与者都同意 Skype 通话的录音和转录,是否有一种方法可以转录会议(实时或离线或两者兼而有之),以便生成文本记录,其中每个口头文本都正确归属于发言者。然后可以将转录本输入到任何类型的搜索或 NLP 算法中。
“自动转录 Skype”的 Google 搜索前 3 名指的是使手动转录变得更容易的应用程序:
(1) http://www.dummies.com/how-to/content/how-to-convert-skype-audio-to-text-with-transcribe.html
(2) http://ask.metafilter.com/231400/How-to-record-and-transcribe-Skype-conversation
(3) https://www.ttetranscripts.com/blog/how-to-record-and-transcribe-your-skype-conversations
虽然录制音频并将其发送到语音转文本引擎很简单,但我怀疑它的质量是否会非常高,因为最好的结果通常是依赖于说话者的模型(否则我们就不必花时间来训练龙自然言)。
但是,在我们选择说话者相关转录模型之前,我们需要知道音频的哪个片段属于哪个说话者。有两种方法可以解决这个问题:
有一种简单的方法可以检索来自每个参与者的所有音频,例如,您只需在通话期间记录每个扬声器麦克风的所有音频,而无需进行任何分段。
如果第一个选项在某种程度上不可行或令人望而却步,我们必须使用说话人分类算法,该算法将音频分割成 N 个簇/说话人(大多数算法允许知道音频中有多少个说话人,但有些算法可以自己解决这个问题)。对于通话过程中的实时转录,我想我们需要一些奇特的实时说话者分类算法。
无论如何,一旦解决了分割问题,每个参与者都会拥有经过训练的说话者模型,然后将其应用于他们的音频部分。一天结束时,每个人都会得到一份不错的对话记录,稍后我们可以做一些花哨的事情,比如主题分析,或者也许老大哥想要筛选每个人的项目会议,而不必听几个小时的音频。
我的问题是,在实践中实施这一点的方法是什么?
我已经在 Google Speech API 上苦苦挣扎了一段时间,希望得到一些建议。
这就是我想做的:
我总是收到一个空的结果对象。
当我按照此入门教程进行操作时,一切正常。
我究竟做错了什么?
任何提示/想法将非常感激。
const Speech = require('@google-cloud/speech');
const SpeechV1beta1 = require('@google-cloud/speech/src/v1beta1')
module.exports = {
syncRecognize: function(base64Encoding) {
const speech = Speech();
const speechV1beta1 = SpeechV1beta1();
const client = speechV1beta1.speechClient();
const body = {
"config": {
"encoding":"LINEAR16",
"sampleRate":16000,
"languageCode":"en-US"
},
"audio": {
"content": base64Encoding
}
}
return client.syncRecognize(body)
.then((results) => {
console.log('results', results)
return {transcription: results[0]};
}).catch(function(error) {
return {error: error};
});;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个Python应用程序来将音频录制为WAV文件,直到用户按下暂停或停止。暂停音频后,用户还应该能够恢复录制。此外:
解决这个问题的好方法是什么?您能为您的解决方案提供一些代码片段吗?
使用python-sounddevice,我可以stop()通过start()流来模仿“暂停”功能。我可以指定一个 numpy 数组作为记录的输出。但:
python-sounddevice 和 sound-file可以支持在事先不知道大小的情况下进行录音。但:
read和write方法。KeyBoardInterrupt?Threading.Event()阻止录制线程来模拟暂停功能,但录制不断写入文件我的sound-device尝试
paused = False
def record():
self.recording = ? # create numpy.ndarray of the correct size
# (not sure the best way to do this without
# knowing the recording duration)
with sd.InputStream(samplerate=44100, device=mic, channels=1,
callback=self.callback): …Run Code Online (Sandbox Code Playgroud) 我正在 iPhone/iPad 上使用 CoreAudio 开发一个应用程序。该应用程序既通过扬声器(输出)播放音频,又同时从麦克风(输入)录制音频。就本应用程序而言,能够比较输入和输出,特别是它们在时域中的“排列”程度,这一点非常重要。因此,正确计算输入和输出通道之间的总延迟至关重要。
我正在 3 种不同的设备上进行测试。一部 iPhone、一部 iPad 和模拟器。我凭经验确定 iPhone 的延迟约为 4050 个样本,iPad 接近 4125 个样本,模拟器大约为 2500 个样本。
经过大量研究(又称谷歌搜索),我在网上发现了一些关于计算 CoreAudio 延迟的讨论,但它们通常涉及在 OSX 而不是 iOS 上使用 CoreAudio。因此,它们指的是 iOS 上不存在的各种功能。然而,对于 iOS 来说,正确的解决方案似乎是使用、和AVAudioSession的某种组合。然而,这些值的组合似乎无法达到上述凭经验确定的值。此外,当我在调用之前和之后检查每个参数时,我会得到截然不同的值。更令人困惑的是,这些值非常接近调用之前的预期延迟,这与我的预期相反。inputLatencyoutputLatencyIOBufferDurationAudioUnitInitializeAudioUnitInitialize
这是我看到的价值观。
模拟器总是为输入和输出返回 0.01,但我怀疑这些不是实际/正确的值,并且模拟器不支持此功能。
另一个可能有趣的注意事项是我正在使用kAudioUnitSubType_VoiceProcessingIO而不是kAudioUnitSubType_RemoteIO我期望增加一些额外的延迟。我的假设是这将包含在inputLatency值中,但也许我需要查询另一个值来包含它?
确定 iOS 中输入和输出之间的总延迟的正确方法是什么?
使用
颤动声音:^8.3.12
我仅在 iOS上遇到问题
扑动:FS:<---channelMethodCallHandler:openPlayerCompleted扑动:FS:<---openAudioSession [VERBOSE-2:ui_dart_state.cc(199)]未处理的异常:“RecordingPermissionException”的实例#0 RecorderExampleState.openTheRecorder(包:projectName/控制器/audioRecorder.dart:46:9)
我还添加到 info.plist:
<key>NSMicrophoneUsageDescription</key>
<string>Allow the app to record using your phone's microphone in order to record description for the new parts</string>
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>
Run Code Online (Sandbox Code Playgroud) audio-recording ×10
audio ×5
ios ×3
python ×2
android ×1
core-audio ×1
flutter ×1
getusermedia ×1
html ×1
javascript ×1
nlp ×1
python-3.x ×1
raspberry-pi ×1
raspbian ×1
skype ×1