跳转到主要内容

萨拉瓦蒂 - 一个强大、多通道音频录制、传输和存储系统

项目描述

https://github.com/hiveeyes/saraswati/workflows/Tests/badge.svg https://codecov.io/gh/hiveeyes/saraswati/branch/main/graph/badge.svg https://img.shields.io/pypi/pyversions/saraswati.svg https://img.shields.io/pypi/v/saraswati.svg License https://img.shields.io/pypi/status/saraswati.svg https://img.shields.io/pypi/dm/saraswati.svg?label=PyPI%20downloads

萨拉瓦蒂

关于

萨拉瓦蒂是一个强大、多通道音频录制、传输和存储系统。该系统旨在灵活记录环境监控系统中的音频信号。

萨拉瓦蒂由来自不同领域的独立科学社区共同开发。欢迎您加入我们的努力。

词源

萨拉瓦蒂是印度教知识、音乐、艺术、智慧和学习的女神。

技术

该软件基于GStreamerGStreamer Python绑定,底层使用优秀的PyGObject。它旨在在单板计算机(SBC)系统以及更大型的机器上运行。

状态

该软件已在Python 3.7-3.9,GStreamer 1.10.4,1.14.4,1.16.2和1.18.4,Linux(Debian 10 buster,Debian 11 bullseye,Linux Mint 20.2)和macOS(Catalina 10.15.7)上成功测试。

设置

本部分文档涵盖了Saraswati的基本安装。使用任何软件包的第一步是正确安装它。请仔细阅读本节。

当希望在生产环境中自主运行Saraswati时,请考虑阅读有关在生产中运行Saraswati的文档。

安装必备条件

由于Saraswati基于GStreamer和可选的ALSA,让我们安装相关软件包。

基于Debian的系统
sudo apt-get update
sudo apt-get install --yes libgstreamer1.0 gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good
sudo apt-get install --yes python3 python3-pip python3-gst-1.0 python3-gi python3-tz
sudo apt-get install --yes alsa-utils mkvtoolnix flac
macOS系统
brew install gstreamer gst-python gst-libav gst-plugins-base gst-plugins-good
brew install mkvtoolnix flac

配置系统

使用NTP同步系统时间,这对于适当的时标很重要

sudo timedatectl set-ntp true

安装Saraswati

从PyPI安装saraswati软件包

pip install saraswati

为了快速验证安装,调用

saraswati record --channel="testdrive source=autoaudiosrc"

用法

本部分文档涵盖如何交互式运行Saraswati。请仔细阅读本节。

当希望在生产环境中自主运行Saraswati时,请考虑阅读有关在生产中运行Saraswati的文档。

录制音频

saraswati record

  • 从GStreamer音频源元素中获取音频的实现,

  • 通过flacenc对音频进行编码,使用FLAC无损音频编码器,

  • 最后使用splitmuxsink(一个将输入流多路复用到多个时间或大小限制的文件的GStreamer组件)存储

每个音频片段都将使用ISO8601-like格式的时间戳,使用+0000的合格UTC偏移量进行时间戳。

要了解命令行语法,请调用saraswati --helpsaraswati record --help

上传音频

当给出--upload=选项时,Saraswati将尝试将它的缓存目录上传到rsync目标。默认情况下,它每5分钟执行此操作。

请注意,将使用--remove-source-files选项调用rsync。因此,在成功上传后,本地机器上的缓存文件将被清除。

示例

调用

saraswati record --channel="testdrive source=autoaudiosrc"

这将产生每块5分钟的音频片段

recording_testdrive_20210621T155817+0000_0000.mka
recording_testdrive_20210621T160317+0000_0001.mka
recording_testdrive_20210621T160817+0000_0002.mka
recording_testdrive_20210621T161317+0000_0003.mka
recording_testdrive_20210621T161817+0000_0004.mka

显示嵌入到Matroska容器文件中的段元数据信息

mkvinfo recording_testdrive_20210620T122642+0000_0065.mka | grep -E 'Codec|Date|duration'
| + Date: Sun Jun 20 12:26:42 2021 UTC
|  + Default duration: 00:00:00.104489796 (9.570 frames/fields per second for a video track)
|  + Codec ID: A_FLAC

提取音频轨道

mkvextract recording_testdrive_20210621T155817+0000_0000.mka tracks 0:audio_20210621T155817.flac
flac --decode audio_20210621T155817.flac

file recording_testdrive_20210621T155817+0000_0000.mka
Matroska data

file audio_20210621T155817.flac
FLAC audio bitstream data, 16 bit, mono, 48 kHz, length unknown

file audio_20210621T155817.wav
RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 48000 Hz

项目信息

背景

此软件是为“蜂观察者”(BOB)项目开发的,该项目是由不伦瑞克大学的认知神经信息学小组和独立研发项目Hiveeyes的人共同发起的联合努力。另请参阅

详细信息

“Saraswati”项目采用GNU AGPL许可证发布。其源代码位于GitHub,Python包发布在PyPI上。您还可以查看文档

如果您想贡献力量,我们非常欢迎!花些时间四处看看,找到一个错误、设计问题或拼写错误,然后向我们发送pull请求或创建一个issue。

感谢您的努力,我们非常感激任何帮助或反馈。

代码许可证

代码遵循GNU AGPL许可证。有关详细信息,请参阅LICENSE文件。


祝您玩得开心!

下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

saraswati-0.6.0.tar.gz (31.9 kB 查看哈希值)

上传时间 源代码

支持者