Voice

Free public voice software for GNOME. Record a short voicegram, place it on the map where you recorded it, and share it with everyone.

Download

Three free programs that speak the same voicegram format, so recordings made with one can be heard in the others.

Server

Voice Server 1.0.0

Stores voicegrams and serves them for listening. Includes gnome-voice-send. Needs GLib 2.66 or newer.

109 KB · SHA-256 0f6f38ec…dfd41b

gnome-voice-server-1.0.0.tar.xz
New · Map app

Voicegram 0.1.0

Record a voicegram, place it on the map where you are, and share it. GTK 4, libadwaita and libshumate, written in Python, with its own small server.

15 KB · SHA-256 d301cbaa…af3486

voicegram-0.1.0.tar.xz

Full checksums and older releases are in the source archive.

Build and install

Voice

tar xf gnome-voice-51.0.tar.xz
cd gnome-voice-51.0
./configure --prefix=/usr
make
sudo make install

Voice Server

tar xf gnome-voice-server-1.0.0.tar.xz
cd gnome-voice-server-1.0.0
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make && make check
sudo make install
sudo systemctl enable --now gnome-voice-server

The server listens on port 8085. Set public-url in /etc/gnome-voice-server/gnome-voice-server.conf to your public address, and put nginx, Apache or Caddy in front for HTTPS. The HTTP interface is described in PROTOCOL.md in the tarball.

Voicegram

# Fedora
sudo dnf install python3-gobject gtk4 libadwaita libshumate geoclue2-libs \
    gstreamer1-plugins-base gstreamer1-plugins-good
# Debian / Ubuntu
sudo apt install python3-gi gir1.2-gtk-4.0 gir1.2-adw-1 gir1.2-shumate-1.0 \
    gir1.2-geoclue-2.0 gir1.2-gst-plugins-base-1.0 \
    gstreamer1.0-plugins-base gstreamer1.0-plugins-good

tar xf voicegram-0.1.0.tar.xz
cd voicegram-0.1.0
python3 voicegram_server.py --port 8642 --public-url https://voice.example.org
VOICEGRAM_SERVER=https://voice.example.org python3 voicegram.py

Voicegram needs libadwaita 1.5 or newer. Its server needs only Python 3.10 or newer.

From your voice to the map

  1. RecordSpeak a short message. Voice saves it as Ogg Vorbis together with a small file saying who you are and where you are.
  2. SendShare it with a voice server, from the app or with gnome-voice-send. You get back the voicegram's public address.
  3. ListenEveryone sees your voicegram on the map at the place you chose, and can play it there.

The voicegram

A voicegram is two files: the recording (.ogg, Ogg Vorbis) and a descriptor (.voice, XML) with the speaker, the location and the stream address.

<?xml version="1.0" encoding="UTF-8"?>
<voice version="51.0">
  <station name="Ole Kristian Aamot" uri="https://www.gnomevoice.org/">
    <location lat="59.9139" lon="10.7522">Oslo</location>
    <stream>https://voice.example.org/voicegrams/GNOME.ogg</stream>
  </station>
</voice>

The Voicegram Recording 1.0 Specification defines the format precisely: every element and attribute, optional title, date and duration, lists of voicegrams, privacy and security rules, and a RELAX NG schema (voice.rnc, voice.rng) for checking your own files.

Thesis

Public Voice Communication

The bachelor's thesis behind GNOME Voice: free software for recording short voice messages, placing them on an OpenStreetMap map, and sharing them in public.

Author
Ole Kristian Aamot
Degree
Bachelor's thesis in Programming
Institution
NTNU, Norwegian University of Science and Technology
Year
2025

Cite

@thesis{aamot2025voice,
  author      = {Aamot, Ole Kristian},
  title       = {Public Voice Communication},
  type        = {Bachelor's thesis},
  institution = {Norwegian University of Science and Technology (NTNU)},
  year        = {2025},
  url         = {http://www.stud.ntnu.no/~olekaam/ntnu/bachelor/Aamot,2025.pdf}
}