SwissGPC

August 16, 2025 · View on GitHub

DOI

This repository holds the official implementation of the SwissGPC (Swiss German Podcast Corpus) pipeline used to weakly label data collected from YouTube and the Swiss Broadcasting Corporation (SRG / SRF). As we do not possess any rights to the collected data, it is not possible to publish the annotated dataset itself. Instead, we publish the data pipeline that downloads, transcribes and prepares the data for usage in, for example, fine-tuning a model for Voice Adaptation TTS.

If you are interested in how we applied this data using the XTTSv2 architecture, check out our fork of the coqui-tts library here.

Podcasts

The podcasts of this dataset are provided here including links to the host-websites and information about raw and cleaned audio size in hours. As outlined above: We do not possess rights or have ownership of these podcasts, and as such, any changes on the platforms they are hosted on are out of our control. Meaning constant updates of changing hyperlinks, partial or complete removal, and similar changes do not fall within the scope of this repository. We will try to provide a general overview of the availability but cannot guarantee to do so in real-time. The podcasts were downloaded over a period of time spanning from September 2024 to March 2025, and as such my not reflect the actual audio lengths of the podcasts on time of download.

SRF Podcast NameRaw (h)Clean (h)vSwissGPC
#SRFglobal36.9733.63v1.0
100 Sekunden Wissen186.75152.12v1.0
BuchZeichen365.10305.62v2.0
Debriefing 404243.15195.29v1.0
Digital Podcast434.56396.59v1.0
Dini Mundart39.2834.84v1.0
Einfach Politik40.6938.07v2.0
Espresso565.84500.50v2.0
Focus807.08630.22v2.0
Gast am Mittag34.0730.43v1.0
Geek-Sofa314.01267.16v1.0
Input714.13602.91v2.0
SRF-Wissen44.7839.17v1.0
Krimi240.80176.05v2.0
Kultur-Talk55.5751.33v1.0
Literaturclub - Zwei mit Buch31.6528.04v1.0
Medientalk68.7762.16v1.0
Persönlich763.15637.87v2.0
Pipifax9.047.66v1.0
Podcast am Pistenrand18.1615.37v1.0
Ratgeber574.46445.64v2.0
Rehmann213.87182.79v2.0
Samstagsrundschau414.45382.33v1.0
Sternstunde Philosophie158.67136.70v1.0
Sternstunde Religion60.5853.90v1.0
Sykora Gisler149.49125.80v1.0
Tagesgespräch1688.261557.43v1.0
Ufwärmrundi60.7254.95v1.0
Vetters Töne25.3720.13v1.0
Wetterfrage65.5259.02v1.0
Wirtschaftswoche126.23115.31v1.0
Wissenschaftsmagazin403.10347.52v1.0
Zivadiliring49.8042.55v1.0
Zytlupe45.6636.61v1.0
Total9041.287765.72
YouTube Podcast NameRaw (h)Clean (h)vSwissGPC
Auf Bewährung - Leben mit Gefängnis3.002.70v1.0
Berner Jugendtreff127.8089.61v1.0
Ein Buch Ein Tee3.733.26v1.0
expectations - geplant und ungeplant kinderfrei16.8414.80v1.0
Fadegrad49.9542.40v1.0
Feel Good Podcast319.60261.43v1.0
Finanz Fabio58.4449.29v1.0
Scho ghört23.4520.47v1.0
Sexologie - Wissen macht Lust15.4113.57v1.0
SRF Dokumentationen398.73284.01v2.0
SRF Reportagen196.39148.10v2.0
Über den Bücherrand14.5312.59v1.0
Ungerwegs Daheim38.6731.08v1.0
Wir müssen reden - Public Eye spricht Klartext17.5215.54v1.0
Total1277.47988.85

Data pipeline

The data from YouTube is downloaded using pytubefix while the SRF data was sourced via the official SRF API. Specifically for YT, the code expects a playlist of videos instead of just a video link. This is so that all episodes can be downloaded at once. SRF podcasts only require the podcast name without any additional information. The pipeline itself is built to download and transcribe the podcasts sequentially, i.e., one podcast after another. The code can be changed by you to do every step in batch and should not be too much effort to do so. Controlling the pipeline is done via the config.yaml, in which you can set what podcast should be downloaded from which source and which pipeline steps should run. See the table below for more information about the parameters. We utilized hdf5 files in our setup, and as such all data is put into hdf5 files on segmentation. This can be changed to your setup accordingly.

Config parameterDescriptionExample value for SRFExample Value for YT
sourceDefines the source of the podcast (either YT or SRF)"srf""yt"
youtube_urlYouTube link to a Playlist containing the podcast episodes""https://www.youtube.com/playlist?list=PLGJjtm2tSyhQXU-_N2YkfqCffXhY6UHNe
podcast_nameName of podcast as provided by authors"Zivadiliring""Finanz Fabio"
write_attrs_to_hdf5Should attributes (i.e. annotated data) be added to the hdf5 filesfalsefalse
steps/downloadFalse/True: Should download step be executedtruetrue
steps/diarizationFalse/True: Should diarization step be executedtruetrue
steps/segmentationFalse/True: Should segmentation step be executedtruetrue
steps/phon_transcriptionFalse/True: Should phoneme transcription step be executedtruetrue
steps/ch_transcriptionFalse/True: Should dialect classification step be executedfalsefalse
steps/mel_spectogramFalse/True: Should mel spectrogram generation step be executedfalsefalse
steps/move_into_dialect_5False/True: Should audio be moved from podcast-based hdf5 to unified dialect hdf5falsefalse