本手册为SNR9815VR语音识别模块用户提供操作指南,详细介绍混音器常用命令及设置技巧,帮助用户快速掌握模块的高级功能和优化性能。
表 17.1 混音器常用命令
| 命令 | 功能 |
|--------------|-------------------------------|
| SOUND_MIXER_VOLUME | 主音量调节 |
| SOUND_MIXER_BASS | 低音控制 |
| SOUND_MIXER_TREBLE | 高音控制 |
| SOUND_MIXER_SYNTH | FM合成器 |
| SOUND_MIXER_PCM | 主 D/A 转换器 |
| SOUND_MIXER_SPEAKER | PC 喇叭 |
| SOUND_MIXER_LINE | 音频线输入 |
| SOUND_MIXER_MIC | 麦克风输入 |
| SOUND_MIXER_CD | CD 输入 |
| SOUND MIXER_IMIX | 放音音量 |
| SOUND_MIXER_ALTPCM | 替代 D/A 转换器 |
| SOUND_MIXER_RECLEV | 录音音量 |
| SOUND_MIXER_IGAIN | 输入增益调整 |
| SOUND_MIXER_LINE1 | 声卡第 1 输入 |
| SOUND_MIXER_LINE2 | 声卡第 2 输入 |
| SOUND_MIXER_LINE3 | 声卡第 3 输入 |
对声卡的输入和输出增益进行调节是混音器的主要功能之一。大部分现代声卡采用的是8位或16位的增益控制器,驱动程序会将这些值转换为0到100之间的百分比形式。
(1)SOUND_MIXER_READ宏
在编程时使用 SOUND_MIXER_READ 宏来读取混音通道的增益大小。例如,以下代码可获取麦克风输入增益:
```c
ioctl(fd, SOUND_MIXER_READ(SOUND_MIXER_MIC), &vol);
```
对于单声道设备(只有一个混音通道),返回值仅包含一个字节代表当前的增益。而对于双声道设备(支持多个混音通道),则需要处理两个部分,分别表示左右两个声道的增益大小:
```c
int left, right;
left = vol & 0xff;
right = (vol & 0xff00) >> 8;
```
这可以用来从返回值中提取左、右声道的具体增益数值。