标签: audio-recording

Linux下C++音频捕获API的最佳实践?

我需要创建一个带有麦克风功能的简单录音的C++应用程序.

我不能说没有足够的音频API来做到这一点!脉冲,ALSA为/ dev/DSP,OpenAL的,等我的问题是什么是当前的 "最佳实践" API?

脉冲似乎得到了大多数现代发行版的支持,但似乎几乎没有文档.OpenAL是否会在不同的发行版中得到支持,还是过于模糊?我错过了吗?
有没有一个简单的答案?

c++ linux audio audio-recording

9
推荐指数
1
解决办法
9439
查看次数

android中的音频和视频录制错误

我需要在同一个文件中同时录制3gp/mp4格式的音频和视频文件.当我运行时,我的应用程序文件是创建的,videofile.3gp但视频不会记录到模拟器上的SD卡.视频是否在模拟器上录制?如果我在Android支持的设备上运行此代码,我会看到这些错误吗?

代码和错误如下:

    package com.video;
/*
 * 
 * @copy Rights
 * audio.java
 * sample code for Eminosoft Developerworks Article
 * Android developent Team
 * www.eminosoft.cm
 * 
 */


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.provider.Settings;
import android.util.Log;
import android.view.View;
import android.widget.Button;


public class video extends Activity {

    public MediaRecorder mrec = null;
    private Button startRecording = null; …
Run Code Online (Sandbox Code Playgroud)

android video-capture audio-recording

9
推荐指数
1
解决办法
1万
查看次数

用Python录音

我想用Python录制USB麦克风的短音频片段.我已经尝试了pyaudio,它似乎无法与ALSA通信,而alsaaudio,其代码示例产生了一个不可读的文件.

所以我的问题是:在Python中用USB麦克风录制剪辑的最简单方法是什么?

python microphone alsa audio-recording pyaudio

9
推荐指数
1
解决办法
1万
查看次数

Google Keep如何在保存录音的同时进行语音识别?

Android的SpeechRecognizer显然不允许将您正在进行语音识别的输入记录到音频文件中.也就是说,要么使用MediaRecorder(或AudioRecord)录制语音,要么使用SpeechRecognizer进行语音识别,在这种情况下,音频不会记录到文件中(至少不能录制到一个文件); 但你不能同时做到这两件事.

多次询问如何在Android中同时录制音频和进行语音识别的问题,最流行的"解决方案"是录制一个flac文件并使用Google的非官方语音API,允许你发送一个flac通过POST请求提交文件并获取带有转录的json响应. http://mikepultz.com/2011/03/accessing-google-speech-api-chrome-11/(过时的Android版) https://github.com/katchsvartanian/voiceRecognition/tree/master/VoiceRecognition http:// mikepultz.com/2013/07/google-speech-api-full-duplex-php-version/

这非常有效,但有一个巨大的限制,它不能用于超过大约10-15秒的文件(确切的限制不明确,可能取决于文件大小或可能的单词数量).这使它不适合我的需要.

此外,将音频文件切片为较小的文件不是一种可能的解决方案; 甚至忘记了在正确的位置(不是在一个单词的中间)正确分割文件的困难,对上述web服务api的许多连续请求将随机导致空响应(Google表示每次使用限制为50个请求那天,但像往常一样,他们没有透露明确限制请求突发的实际使用限制的细节.

因此,所有这些似乎表明,在将输入录制到Android中的音频文件的同时获取语音转录是不可能的.

但是,谷歌Keep Android应用就是这么做的.它允许你说话,将你所说的内容翻译成文本,并保存文本和录音(很不清楚它存储在哪里,但你可以重放它).它没有长度限制.

所以问题是:是否有人知道Google如何做到这一点?我会查看源代码,但它似乎不可用,是吗?

我在进行语音识别时嗅探了Google Keep发送和接收的数据包,它肯定不会使用上面提到的语音api.所有流量都是TLS,并且(从外部看)它看起来与使用SpeechRecognizer时非常相似.

那么也许存在将麦克风输入流"分割"(即复制或复用)到两个流中的方式,并将其中一个馈送到SpeechRecognizer,另一个馈送到MediaRecorder?

android speech-recognition google-api audio-recording

9
推荐指数
1
解决办法
3300
查看次数

在genymotion /任何其他好的Android模拟器中启用MIC

我正在制作一个使用麦克风录制音频的应用.

如何在genymotion模拟器中启用麦克风?

要么

Android app dev有没有其他好的模拟器?

需要帮助谢谢!

android emulation audio-recording android-emulator genymotion

9
推荐指数
1
解决办法
8964
查看次数

Android MediaRecorder采样率和噪音

我有一个问题,使用Android的MediaRecorder记录从麦克风到.m4a文件(AAC-LC,MPEG-4容器)的声音.从API级别18开始,默认采样率从44.1或48 kHz(取决于设备)降至仅8 Hz.如果我使用MediaRecorder.setAudioSamplingRate指定采样率,它会使用指定的速率,但录制中会有很多奇怪的噪音.

在LogCat中,以下警告会不时发生:

(1)标签:AudioSource文本:AudioRecord报告超限

(2)标签:AudioFlinger文本:RecordThread:缓冲区溢出

这是代码:

MediaRecorder recorder = new MediaRecorder();
recorder.setAudioChannels(2);
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.setAudioSamplingRate(48000);   // if not specified, defaults to 8kHz, if specified 44.1 or 48 kHz, lots of noise
recorder.setOutputFile("test.m4a");

try {
    recorder.prepare();
    recorder.start();

} catch (IOException ioe) {
    Log.e(TAG, "IOException", ioe);
} catch (IllegalStateException ise) {
    Log.e(TAG, "IllegalStateException", ise);
} catch (Exception e) {
    Log.e(TAG, "Exception", e);
}
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏.

android buffer-overflow audio-recording sampling mediarecorder

9
推荐指数
1
解决办法
4686
查看次数

使用C#从线路输入连续采样的最简单方法是什么?

我想在使用C#(然后处理该数据)时从我的PC音频线连续采样.采样的最佳方法是什么?

c# audio signal-processing audio-recording

8
推荐指数
1
解决办法
3142
查看次数

如何在Android中暂停录音?

我的目标是暂停录制文件.我在Android开发者网站上看到它但是Media Recorder没有暂停选项.

Java支持以编程方式合并两个音频文件,但在android中它不起作用.

从Java加入两个WAV文件?

此外,我还使用了所有设备都可以使用的默认设备录音机应用程序,但在三星中,很少有设备没有恢复录制路径.

Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
startActivityForResult(intent,REQUESTCODE_RECORDING);
Run Code Online (Sandbox Code Playgroud)

任何一个有暂停功能的录音帮助.

android audio-recording mediarecorder android-mediarecorder

8
推荐指数
3
解决办法
1万
查看次数

Android Media Recording:java.lang.RuntimeException:启动失败

我正在打电话记录.当我开始记录电话时,不幸的是停止了.&它的错误MediaRecorder启动失败-2147483648.我参考这个答案链接.但我不明白.请告诉我我的代码中有什么问题?这是我的代码.

public class IncomingCall extends BroadcastReceiver {

Context pcontext;
private static MediaRecorder recorder;
private boolean recordedStart = false;

@SuppressWarnings("unchecked")
public void onReceive(Context context, Intent intent) {
    pcontext = context;
    recorder = new MediaRecorder();

try {
            TelephonyManager tmgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            MyPhoneStateListener PhoneListener = new MyPhoneStateListener();
            tmgr.listen(PhoneListener, PhoneStateListener.LISTEN_CALL_STATE);

    } catch (Exception e) {
        Log.e("Phone Receive Error", " " + e);
    }

}

private class MyPhoneStateListener extends PhoneStateListener {
    public void onCallStateChanged(int state, String incomingNumber) {



        switch (state) …
Run Code Online (Sandbox Code Playgroud)

android audio-recording phone-call

8
推荐指数
1
解决办法
1万
查看次数

MediaDevices.getUserMedia() 如何设置音频约束(采样率/位深度)?

使用浏览器Web API,我想设置适合录制音频语音(语音消息)的MediaDevices.getUserMedia 约束属性,例如设置这些参数:

  • 单核细胞增多症
  • 16位
  • 16KHz

这是我的代码:

   const mediaStreamConstraints = {
       audio: {
         channelCount: 1,
         sampleRate: 16000,
         sampleSize: 16,
         volume: 1
       },

       video: false
   }

   navigator.mediaDevices.getUserMedia(mediaStreamConstraints)
     .catch( err => serverlog(`ERROR mediaDevices.getUserMedia: ${err}`) )
     .then( stream => {

        // audio recorded as Blob 
        // and the binary data are sent via socketio to a nodejs server
        // that store blob as a file (e.g. audio/inp/audiofile.webm)

      } )

Run Code Online (Sandbox Code Playgroud)

录制的剪辑被抓取并存储(使用MediaRecorderAPI),最终发送到 Nodejs 服务器,其中 blob 被保存为文件并进行处理(该应用程序是一个语音机器人)。

出现问题,WebM 保存的文件没有所需的参数:

$ mediainfo audio/inp/audiofile.webm
General …
Run Code Online (Sandbox Code Playgroud)

browser audio audio-recording getusermedia mediadevices

8
推荐指数
2
解决办法
1万
查看次数