---
name: "na_record"
section: "1"
platform: "linux"
package: "speech-tools"
version: "1:2.5.0-13+b4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/na_record"
---

# na\_record(1)

record waveform from audio device

## NAME

**na\_record** – record waveform from audio device

## SYNOPSIS

**na\_record** \[**-h**\] \[**-f** *sampling* *rate*\] \[**-audiodevice** *device*\] \[**-time** *seconds*\] \[**-o** *file*\] \[**-otype** *type*\] \[**-ostype** *sample* *type*\] \[**-F** *sample* *rate*\] \[**-obo** *MSB* \| *LSB* \| *native*\] \[**-oswap**\] \[**-p** *audio* *device* *protocol*\]

## DESCRIPTION

**na\_record** records digital audio data from the system's audio input device and writes it to the specified file.  It supports a variety of output file formats and native audio devices.

The following option flags are recognized:

- **-h**

  Prints a short summary of usage to standard output.

- **-f** *sampling* *rate*

  Sets the input sampling rate (in samples per second, i.e. Hz).  Not all devices support all sampling rates, so it may be desirable to set this separately from the output sampling rate.

- **-audiodevice** *device*

  Sets the audio device to record from, if supported by the audio protocol chosen (e.g. /dev/dsp, /dev/audio)

- **-time** *seconds*

  Stops recording after the specified number of seconds.

- **-o** *file*

  Writes sound output to the specified file

- **-otype** *type*

  Specifies the file format to use for output. Supported types currently include nist, est, dsps, snd, riff, aiff, audlab, raw, and ascii. The **-h** flag will show the most accurate list.  The default type is nist.

- **-F** *sampling* *rate*

  Sets the output sampling rate (again, in samples per second, i.e. Hz). If this differs from the input sampling rate, resampling will be done. Defaults to 16000Hz.

- **-obo** *byte* *order*

  Sets the output byte order. Supported values are MSB, LSB, and native. Many file formats have their own byte order, or are byte order independent, so this isn't tremendously useful except for raw data. The default is the native byte order for the system audio device.

- **-oswap**

  Swap bytes when saving to output.

- **-ostype** *sample* *type*

  Sets the sample type of the output. Supported values are short, mulaw, byte, or ascii. Again, this is usually implied by the file format, so should only be used for raw data.  The default is short (i.e. 16-bit PCM).

- **-p** *audio* *device* *protocol*

  Selects an audio device protocol (i.e. type of audio device) to use. This varies between different installations of Speech Tools, but defaults to the most 'native' audio device, usually Open Sound System on Linux and \*BSD and /dev/audio on Solaris.

## ENVIRONMENT

- NA\_PLAY\_PROTOCOL

  Audio protocol to use (as in the **-p** flag)

- NA\_PLAY\_HOST

  Host to record audio from when using a network audio protocol.

## EXAMPLES

To record five seconds of audio from /dev/dsp1 (on Linux) to foo.wav in RIFF format at 32kHz:

```
$ na_record -time 5 -audiodevice /dev/dsp1 -o foo.wav -otype RIFF -f 32000
```

To record one second of audio to bar.wav in raw format in 8kHz mu-law:

```
$ na_record -time 1 -o bar.wav -otype raw -ostype mulaw -f 8000
```

## BUGS

The **-time** argument only accepts integer values (though the usage message implies otherwise)

## SEE ALSO

[na\_play(1)](/na_play/1.md)
