linux - 通过 multimon、awk 和 espeak 监控 DTMF

标签 linux bash radio telephony dtmf

  • 如何在声卡每次采集一个数字时听到口头的 DTMD 数字?

目标是 radio 控制我的电脑和接口(interface)事件,通过手持收发器调用 dtmf 音调。

我用 multimon 听 DTMF 音调 我尝试使用 awk 来过滤数字并相应地进行。 例如,如果我从 radio 中键入“0”,系统必须重新启动等,但首先要确认操作。 "计算机将重新启动,发送 # 以确认"...

我尝试使用 espeak 对远程 radio 进行语音确认。 连接到 pc 声卡的 radio 接收命令并传输响应。

我不只是知道如何在 espeak 中的 awk 中嵌套 multimon。

Multimon 本身不允许我对它的标准输出做任何事情,因为它正在运行(听到数字后不要终止,这确实是正确的)。

如果我知道如何只说出每个数字而不退出自然的 multimon 循环,那将非常有帮助。

例如,multimon -a DTMF | awk'{print}' espeak -stdin 如果这简单有效!

可以吗?欢迎任何帮助。

3 年过去了,linux DTMF 解码仍然没有进步。

一旦我在 Linux 中没有看到任何 DTMF radio 控制项目,我打算发布这个,我可以解决这个问题。

谢谢/马里奥/巴西圣保罗

最佳答案

我认为我的回答已经过时,也许您已经找到了解决方法。

我遇到了同样的问题,发现问题出在 multimon 中。当您将标准输出从 multimon 传输到另一个程序时,multimon 不会正确刷新详细输出。

尝试修补并重新编译 multimon,添加“fflush(stdout);”,如下所示:

(unixinput.c,第 71 行左右)

    void verbprintf(int verb_level, const char *fmt, ...)
    {
            va_list args;

            va_start(args, fmt);
            if (verb_level <= verbose_level) {
                    vfprintf(stdout, fmt, args);



                    fflush(stdout); //ADD THIS LINE!!!!!!!!!!!!!!!



                    }
            va_end(args);
    }

最好的问候,

-爱德华多

关于linux - 通过 multimon、awk 和 espeak 监控 DTMF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2197271/

相关文章:

python - 社区电台上的 GNU Radio

audio - 整数FM解调

c - Linux 上 C 中的 UDP 发送方和 Windows 上 Qt 中的接收方不工作?

mysql - 扩展 MySQL 数据库,提高许多连接的性能

linux - 如何在 linux 中用不同的字符串替换相同的事件

bash - 将 awk 命令串在一起

linux - 如何在 shell 脚本中逐行从文件中分离关键字?

linux - 移动与其包含的文件同名的文件

linux - 如何在后台一条一条运行命令?

hash - 确定 16 位校验和计算的最有效方法是什么? [CRC hell :-(]