#!/bin/sh if test $# -ne 2 then printf "Usage: %s infile outfile\n" "$0" >&2 exit 1 fi # Escape sed -E 's,&,\&\;,g;s,<,\<\;,g;s,>,\>\;,g' "$1" | # Remove joins/parts/quits sed -E '/^(..:..) -!- ([^ ]+).*has joined \#[^ ]*$/d' | sed -E '/^(..:..) -!- ([^ ]+).*has quit \[[^]]*\]$/d' | sed -E '/^(..:..) -!- ([^ ]+).*has left \#[^ ]* \[[^]]*\]$/d' | # Speak nick changes specially sed -E 's,^(..:..) -!- ([^ ]+) is now known as ([^ ]+)$,\1 \2 became \3,' | # Speak day changes specially sed -E 's,^ --- (Day changed .*)$,\1,' | # Remove minicat topic diffs sed -E '/^(..:..) \<\;.minicat\>\; .?\(diff\).*/d' | # Speak timestaps and nicks specially sed -E 's,^(..:..) \<\;[+@ ]?([^& ]+)\>\;,\1 \2,' | sed -E 's,^(..:..) \* ([^ ]+),\1 action \2,' | # Handle "<-" and "←" answers sed -E 's,\<-|←,answer,' | # Handle someone quoting another person sed -E 's,\<\;[+@ ]?([^& :]+)\>\;,quoting \1,g' | sed -E 's, \* ([^ ]+),quoting action \1,g' | # Handle Twitter URLs sed -E 's,https?://(mobile\.|www\.)?twitter[^ )>]+, twitter URL,g' | # Handle URLs sed -E 's,(https?|gopher)://[^ )>]+, \1 URL,g' | # Handle 'fancy' quotes sed -E 's,«|“,left quote,g;s,»|”|„,right quote,g' | # Handle some common emoticons sed -E 's,\^_\^,happy eyes emoticon,g' | sed -E 's,\\o\/,arms in air emoticon,g' | sed -E 's,\bo\/,waving emoticon,g' | sed -E 's,\\o\b,waving emoticon,g' | sed -E 's,\:\),smiling emoticon,g' | sed -E 's,\(\:,reversed smiling emoticon,g' | sed -E 's,\:\(,sad emoticon,g' | sed -E 's,\)\:,reversed sad emoticon,g' | sed -E 's,:D\b,colon dee,g' | sed -E 's,\bD:,dee colon,g' | sed -E 's,:D:,colon dee colon,g' | # Handle some special characters espeak ignores sed -E 's,\^,caret,g' | # Add pauses sed -E 's,$,,' | # Translate to actual tags sed -E 's,,,g;s,,,g' | # Speak espeak --stdin --stdout --punct='"' -m | # Convert to mp3 ffmpeg -i /dev/stdin -f mp3 "$2"