<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>emonkey&#039;s Blog &#187; GNU/Linux</title>
	<atom:link href="http://blog.diener.li/category/gnulinux/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.diener.li</link>
	<description></description>
	<lastBuildDate>Mon, 09 Nov 2009 14:30:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PGP/GPG key signing commands</title>
		<link>http://blog.diener.li/2008/12/pgpgpg-key-signing-commands/</link>
		<comments>http://blog.diener.li/2008/12/pgpgpg-key-signing-commands/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 14:01:42 +0000</pubDate>
		<dc:creator>emonkey</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[kubuntu-de.org]]></category>

		<guid isPermaLink="false">http://blog.diener.li/archives/11-guid.html</guid>
		<description><![CDATA[Because I don&#8217;t sign keys very often I always have to search for the commands. So here is a little reminder for my bad memory(called /dev/brain).   
Get keys from a keyserver: gpg &#8211;keyserver pgp.mit.edu &#8211;recv-keys  &#60;key&#62;
Sign the key with your key: gpg &#8211;sign-key &#60;key&#62;
Export the key to a public keyserver: gpg &#8211;keyserver pgp.mit.edu &#8211;send-keys [...]]]></description>
			<content:encoded><![CDATA[<p>Because I don&#8217;t sign keys very often I always have to search for the commands. So here is a little reminder for my bad memory(called /dev/brain).  <img src='http://blog.diener.li/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Get keys from a keyserver: <em><span style="color: #3366ff;">gpg &#8211;keyserver pgp.mit.edu &#8211;recv-keys  &lt;key&gt;</span></em></p>
<p>Sign the key with your key: <em><span style="color: #3366ff;">gpg &#8211;sign-key &lt;key&gt;</span></em></p>
<p>Export the key to a public keyserver: <span style="color: #3366ff;"><em>gpg &#8211;keyserver pgp.mit.edu &#8211;send-keys &lt;key&gt;</em></span></p>
<p>Remember that not everyone want to have his keyy on a public keyserver. And yes there are ways to do that with kgpg, but for key signing sessions where a lot of keys should be signed it&#8217;s much more comfortable with the command line interface.</p>
<p>More Informations under this links: <a title="official GnuPG documentation" href="http://www.gnupg.org/documentation/howtos.en.html" target="_blank"></a></p>
<ul>
<li><a title="official GnuPG documentation" href="http://www.gnupg.org/documentation/howtos.en.html" target="_blank">http://www.gnupg.org/documentation/howtos.en.html</a> (multilingual)</li>
<li><a title="GPG/PGP Information auf deutsch" href="https://wwwbs.informatik.htw-dresden.de/internet/PGP/index.pgp.html" target="_blank">https://wwwbs.informatik.htw-dresden.de/internet/PGP/index.pgp.html</a> (German/Deutsch)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.diener.li/2008/12/pgpgpg-key-signing-commands/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On the road &#8230; &#8211; Tour de Suisse</title>
		<link>http://blog.diener.li/2008/09/on-the-road-tour-de-suisse/</link>
		<comments>http://blog.diener.li/2008/09/on-the-road-tour-de-suisse/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 11:51:21 +0000</pubDate>
		<dc:creator>emonkey</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[Persönlich - personal]]></category>
		<category><![CDATA[Pfadfinder - scouts]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[kubuntu-de.org]]></category>

		<guid isPermaLink="false">http://blog.diener.li/archives/10-guid.html</guid>
		<description><![CDATA[I wrote this blogentry already but unfortunately I deleted it on my own stupidity. Nevertheless I want to tell you a bit about my holiday job. After my last exam I received a call for this job and I accept it because it matched very well with my spare time until the beginning of the [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote this blogentry already but unfortunately I deleted it on my own stupidity. Nevertheless I want to tell you a bit about my holiday job. After my last exam I received a call for this job and I accept it because it matched very well with my spare time until the beginning of the new semester. The cool thing about the job was that I was able to travel through our whole country and visit many friends. And of course there we&#8217;re many beautiful places alle over the whole journey:</p>
<p>http://blog.diener.li/uploads/080901_gatour_thunersee.jpg &#8211; Blick in der Nähe von Spiez in Richtung Norden über den Thunersee</p>
<p>http://blog.diener.li/uploads/080901_gatour_bodensee.jpg &#8211; Blick über den Untersee des Bodensee zwischen Stein am Rhein und Konstanz</p>
<p>http://blog.diener.li/uploads/080901_gatour_lacdeneuchatel.jpg &#8211; Blick westlich von Neuenburg Richtung Murten</p>
<p>http://blog.diener.li/uploads/080901_gatour_lacleman.jpg &#8211; Blick westlich von Lausanne in Richtung Südosten</p>
<p>http://blog.diener.li/uploads/080901_gatour_zuerichsee.jpg &#8211; Blick von der Autofähre über den Zürichsee in Richtung Meilen/Rapperswil</p>
<p>Ok there we&#8217;re also negative sides, especially a lot of time which I spent alone in the car. Therefore it was very importent for me to see friends for lunch or a coffee in the afternoon. Thank you very much for being around and taking some time for me! Thanks also to the very friendly staffs from the Kandersteg International Scout Center (KISC) where I spent one of the nights. And don&#8217;t forget to thanks all the people around me which had a lot of patient because I was just away without really an announcement. It was truly a bit an impulsiv and offhanded decision to get this job down. Sorry for not announcing it very well.</p>
<p>Thank you all again you&#8217;re just great!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diener.li/2008/09/on-the-road-tour-de-suisse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Audio Dateien mit sox konvertieren</title>
		<link>http://blog.diener.li/2007/01/audio-dateien-mit-sox-konvertieren/</link>
		<comments>http://blog.diener.li/2007/01/audio-dateien-mit-sox-konvertieren/#comments</comments>
		<pubDate>Thu, 25 Jan 2007 20:53:25 +0000</pubDate>
		<dc:creator>emonkey</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>

		<guid isPermaLink="false">http://blog.diener.li/archives/6-guid.html</guid>
		<description><![CDATA[Eines der System welche ich geschäftlich betreue ist ein Call Center. Zur Zeit gibt es immer mehr Hotlines die mit diesem System arbeiten. Das hat zur Folge das wir auch immer mehr mit den Begrüssungs- und Ansagetexten der verschiedenen Hotlines zu tun haben. Über die Jahre gibt es mittlerweile an die tausend Textbausteine mit denen [...]]]></description>
			<content:encoded><![CDATA[<p>Eines der System welche ich geschäftlich betreue ist ein Call Center. Zur Zeit gibt es immer mehr Hotlines die mit diesem System arbeiten. Das hat zur Folge das wir auch immer mehr mit den Begrüssungs- und Ansagetexten der verschiedenen Hotlines zu tun haben. Über die Jahre gibt es mittlerweile an die tausend Textbausteine mit denen die Texte zusammen gestellt werden. Jede Gruppe hat verschiedene eigene Texte, welche natürlich auch in den drei grossen Landessprachen der Schweiz und in Englisch zu Verfügung stehen müssen.</p>
<p>Bislang wurden neue Texte beim Hersteller in einem Studio mit einer professionellen Sprecherin jedes Mal neu produziert. Dies ist natürlich kostenintensiv, macht uns aber auch von externen Schnittstellen abhängig und dauert zu dem länger. Also machte ich mir einige Gedanken wie ich diese Situation verbessern könnte.</p>
<p>Das erste Problem bestand darin das ich die Texte im vorhandenen Format nicht oder nur schwer abhören konnte. Wollte ich also wissen was für eine Ansage in einer Audiodatei war, war ich gezwungen diese einer Testgruppe zuzuweisen und sie dann per Telefon abhören. Pro Text dauert dies an die 2-5 Minuten. Wenn ich also hunderte von Texte in ein Inventar aufnehmen wollte, war das keine praktikable Lösung.</p>
<p>Also installierte ich mir erstmal Audacity und versuchte damit die Audiodateien zu öffnen. Leider stellte sich heraus dass das Format ein Rohdatenformat ohne jegliche Headerinformationen war. Nach einigen Recherchen und viel Knobeln fand ich nun zumindest das richtige Format. Es handelt sich um ein in der Telefon- und Vermittlungs Anlagen verbreitetes RAW Format. (MU-LAW, unsigned bit, 8000Hz, Mono)</p>
<p>Nun war ich in der Lage die Dateien in Audacity über den Rohdatenimport einzulesen, abzuhören und natürlich auch in andere Formate umzuwandeln. Eigentlich ein grosser Fortschritt da ich nun wenigstens die wichtigsten Texte in WAV oder MP3 Dateien umwandeln konnte und sie auf jedem Rechner mit den üblichen Mediaplayern abspielen konnte.</p>
<p>Für die grosse Anzahl der Dateien leider noch immer kein praktibler Weg. Auf der Suche nach einem brauchbaren Freeware oder OSS Programm, das auch für Windows zur Verfügung steht, suchte ich mir erfolglos die Finger wund. Leider bin ich gezwungen ein Lösung zu finden, die auch auf den Standard-Desktops meines Arbeitgebers, also auf Windows XP, funktioniert. Da die Zeit aber langsam knapp wurde, entschied ich mich zu meinem Kubuntu-Linux Laptop zu greifen und es damit anzugehen.</p>
<p>Nach einem Tipp aus dem IRC Kanal der LUG Schweiz wurde ich auf das Konsolenprogramm sox aufmerksam. Konsole war insofern schon mal sehr gut, da ich mittels eine Skript eine Konvertierung schnell und trotz meinem meinen rudimentären Konsolen-Kenntnissen programmieren konnte. Nach einigem Suchen im Internet, dem Lesen des englischen Handbuches und ein wenig Knobeln, hatte ich die benötigten Attribute zusammen.</p>
<p>Befehl mit Attributen die ich benötigte für die Konvertierung von RAW zu WAV:</p>
<blockquote><p><span style="color: #3366ff;"><em>sox -r 8000 -U -b -c 1 -t raw RAWDATEI WAVEDATEI.wav</em></span></p></blockquote>
<p>Befehl mit Attributen die ich benötigte für die Konvertierung von WAV zu RAW:</p>
<blockquote><p><span style="color: #3366ff;"><em>sox -t wav WAVEDATEI -t .ul -U -s -b -c 1 -r 8000 RAWDATEI.raw</em></span></p></blockquote>
<p>Da ich den Befehl aber nicht für hunderte von Dateien anpassen wollte, musste ich den Befehl nun mit einem Skript in eine Schleife packen. Ich erstelle also die Datei raw2wav und schrieb darin folgende Zeilen:</p>
<blockquote><p><span style="color: #3366ff;"><em> #!/bin/bash<br />
for f in $* ;do<br />
g=$f<br />
sox -r 8000 -U -b -c 1 -t raw $f $g.wav<br />
echo $f to $g converted<br />
done<br />
echo done</em></span></p></blockquote>
<p>Die Datei muss natürlich noch ausführbar gemacht werden:<strong></strong></p>
<blockquote><p><span style="color: #3366ff;"><em>chmod +x raw2wav</em></span></p></blockquote>
<p>Denn ich das Skript nun starte mit</p>
<blockquote><p><span style="color: #3366ff;"><em>./raw2wav *.raw</em></span></p></blockquote>
<p>so werden sämtliche Dateien in diesem Ordner mit der Endung .raw konvertiert und als Kopie mit der Endung .wav abgespeichert.</p>
<p>Bei mir hatte ich zusätzlich das Problem, dass die Dateiendungen nicht .raw sind, sondern eine Bezeichnung welche kennzeichnet, zu welcher Callcenter Gruppe sie gehören. Natürlich kann das Skript mit entsprechend anderen Paramatern wie<span style="color: #0033ff;"><em></em></span></p>
<blockquote><p><span style="color: #3366ff;"><em>./raw2wav .*</em></span></p></blockquote>
<p>aufrufen, dann werden alle Dateien mit einem Punkt in Namen konvertiert. Das wirkliche Problem besteht aber darin, dass beim Speichern der Kopie ja die neuen Dateien alle die Endung .wav erhalten. Somit überschreibt das Skript jeweils die bereits erstellten Datein. Hier ein Beispiel:</p>
<ol>
<li>Begrüssungstext der Gruppe 1 (begr.001) wird als begr.wav gespeichert.</li>
<li>Begrüssungstext der Gruppe 2 (begr.002) wird als begr.wav gespeichert, womit die WAV-Datei der Gruppe 1 überschrieben wird.</li>
</ol>
<p>Also musste ich den Dateinamen beim Speichern insofern verÃ¤ndern, dass er einmalig und aussagekrÃ¤ftig ist. Ich suchte also nach einer Möglichkeit die Gruppennummer in den Dateinamen einfliessen zu lassen. Wie bereits erwähnt sind meine Skript-Kenntnisse nur grundlegend und mit Variablenmanipulationen mit regulären Ausdrücken bin ich eher schwach. Zum Glück gibt es im IRC Kanal der LUG Schweiz Leute die davon eine Menge Ahnung haben. Recherche im Internet und selbständiges Pröbeln war wegen Termindruck damals leider keine Option, obwohl es gut wäre wenn ich mich endlich etwas tiefer mit regulären Ausdrücken auseinander setzen würde.</p>
<p>Das Ziel war es den Dateinamen wie folgt zu manipulieren:</p>
<blockquote><p><span style="color: #808000;">begr.001 &gt; begr001.wav<br />
begr.002 &gt; begr002.wav<br />
&#8230;<br />
begr.00n &gt; begr00n.wav</span></p></blockquote>
<p>Erreicht habe ich das schluss endlich mit folgendem Befehl, welche den Befehl auf Zeile 3 des Skripts ersetzt:</p>
<blockquote><p><span style="color: #3366ff;"><em>g=`echo $f | sed &#8220;s,\..,,g&#8221;`</em></span></p></blockquote>
<p>Noch ein kleiner Tipp falls ihr mit den Attributen von sox spielen wollt, um die korrekten Einstellungen zu erhalten. Baut einfach am Ende der Schlaufe nach Zeile 6 einen Befehl ein welcher euch das konvertierte gleich abspielt. Alternativ kann man auch die Zeile 4 mit diesem Befehl ersetzen, dann wandelt man die Dateien nicht in WAV um sondern hört sie bloss ab.</p>
<blockquote><p><span style="color: #3366ff;"><em>sox -r 8000 -A -b -s -c 1 -t .ul $g.raw -t ossdsp /dev/dsp</em></span></p></blockquote>
<p>Eigentlich sind wir hiermit schon am Ende. Da ich aber die Dateien nicht nur abhören wollte, sondern auch mit Audacity anpassen (z.B. Ansagen kürzen) wollte, musste ich mir auch ein Skript erstellen, dass den Vorgang wieder umkehrt. Also ein Skript das aus einer WAV-Datei wieder eine RAW-Datei mit denselben Eigenschaften erstellt. Mit Sox ist das natürlich kein Problem, man braucht lediglich die Attribute zu vertauschen. Hier das vollständige Skript welches ich analog zu raw2wav, wav2raw genannt habe:</p>
<blockquote><p><span style="color: #0033ff;"><em><span style="font-family: courier new,courier,monospace;"> #!/bin/bash<br />
for f in $</span></em></span><span style="color: #0033ff;"><em><span style="font-family: courier new,courier,monospace;">* ;do<br />
g=`echo $f | sed &#8220;s,\..*,,g&#8221;`<br />
sox -t wav $f -t .ul -U -s -b -c 1 -r 8000 $g.raw<br />
echo $f converted<br />
#sox -r 8000 -A -b -s -c 1 -t .ul $g.raw -t ossdsp /dev/dsp<br />
done<br />
echo done</span></em></span></p></blockquote>
<p>Falls die konvertierte Datei nach dem Umwandeln gleich abgehört werden möchte, muss man einfach die Zeile 6 auskommentieren.</p>
<p>Nun ich hoffe dass es da draussen Jemand gibt dem meine Erläuterungen etwas bringen, ansonsten habe ich das wenigstens für mich dokumentiert und weiss wo ich nachsehen muss, falls ich es wieder einmal brauchen werde.</p>
<p>Hier noch zwei Links die eventuell von Nutzen sein können:</p>
<ul>
<li><a href="http://www.ling.upenn.edu/phonetics/sox.html" target="_blank">http://www.ling.upenn.edu/phonetics/sox.html</a></li>
<li><a href="http://www.oreillynet.com/onlamp/blog/2004/11/convert_audio_between_mp3_flac.html" target="_blank">http://www.oreillynet.com/onlamp/blog/2004/11/convert_audio_between_mp3_flac.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.diener.li/2007/01/audio-dateien-mit-sox-konvertieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

