Last active
July 12, 2021 00:21
-
-
Save curioustorvald/12f9f5dfa4870a2b586d0bb3ffa63119 to your computer and use it in GitHub Desktop.
Twitch Chat Reader with Espeak and Chatty
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
file=speechtemp.txt | |
filetmp=speechtemp.tmp | |
while : | |
do | |
lastline=$(head -1 $file) | |
tail -n +2 $file > $filetmp && mv $filetmp $file | |
outline=$(echo $lastline | sed -r 's/\[[^\n]+\] <[^\n<>]+>\*?//') | |
outline=$(echo $outline | sed -r 's/\x01|\x02|\x03|\x04|\x05|\x06|\x07|\x08|\x09|\x0A|\x0B|\x0C|\x0D|\x0E|\x0F|\x10|x11|\x12|\x13|\x14|\x15|\x16|\x17|\x18|\x19|\x1A|\x1B|\x1C|\x1D|\x1E|\x1F//g') | |
outline=$(echo $outline | sed -r 's/vulpe/불페/g') | |
outline=$(echo $outline | sed -r 's/boolgyeowoo/붉여우/g') | |
outline=$(echo $outline | sed -r 's/~([가-힣])/물결표 \1/g') | |
outline=$(echo $outline | sed -r 's/([가-힣])~+/\1/g') | |
outline=$(echo $outline | sed -r 's/([0-9][0-9]):([0-9][0-9]):([0-9][0-9])/\1시 \2분 \3초/g') | |
outline=$(echo $outline | sed -r 's/([0-9][0-9]):([0-9][0-9])/\1시 \2분/g') | |
outline=$(echo $outline | sed -r 's/!([가-힣])/느낌표 \1/g') | |
outline=$(echo $outline | sed -r 's/chivil2Nabchi/Chivilt납치/g') | |
outline=$(echo $outline | sed -r 's/chivil2KiKi/Chivilt키키/g') | |
outline=$(echo $outline | sed -r 's/chivil2Domangga/Chivilt도망가/g') | |
outline=$(echo $outline | sed -r 's/chivil2Gamgyul/Chivilt감귤/g') | |
outline=$(echo $outline | sed -r 's/funzinZthx/펀진제리감사/g') | |
outline=$(echo $outline | sed -r 's/funzinAng1/펀진앵무/g') | |
outline=$(echo $outline | sed -r 's/funzinAng3/펀진앵무/g') | |
outline=$(echo $outline | sed -r 's/funzinPepepe/펀진페페페/g') | |
outline=$(echo $outline | sed -r 's/funzinOMG/펀진칠레감탄/g') | |
outline=$(echo $outline | sed -r 's/funzinRctAngry/펀진롤코화남/g') | |
outline=$(echo $outline | sed -r 's/funzinRctUp/펀진롤코따봉/g') | |
outline=$(echo $outline | sed -r 's/funzinRctDown/펀진롤코따운/g') | |
outline=$(echo $outline | sed -r 's/funzinRctTrophy/펀진롤코트로피/g') | |
outline=$(echo $outline | sed -r 's/funzinRctToilet/펀진롤코변기/g') | |
outline=$(echo $outline | sed -r 's/funzinRctGoldToilet/펀진롤코고올든변기/g') | |
outline=$(echo $outline | sed -r 's/funzinFn1/펀진파누좌/g') | |
outline=$(echo $outline | sed -r 's/funzinFn2/펀진파누코/g') | |
outline=$(echo $outline | sed -r 's/funzinFn3/펀진파누우/g') | |
outline=$(echo $outline | sed -r 's/funzinFnA1/펀진파누하이/g') | |
outline=$(echo $outline | sed -r 's/funzinDodo1/펀진도도/g') | |
outline=$(echo $outline | sed -r 's/funzinDodo0/펀진도도메롱/g') | |
outline=$(echo $outline | sed -r 's/funzinFanu0/펀진파누/g') | |
outline=$(echo $outline | sed -r 's/funzinBabo/펀진바보/g') | |
outline=$(echo $outline | sed -r 's/sakemoEww/사케경멸/g') | |
outline=$(echo $outline | sed -r 's/sakemoHing/사케힝/g') | |
outline=$(echo $outline | sed -r 's/sakemoYung/사케융/g') | |
outline=$(echo $outline | sed -r 's/sakemoGgong/사케꽁/g') | |
outline=$(echo $outline | sed -r 's/sakemoSuperggong/사케꽁/g') | |
outline=$(echo $outline | sed -r 's/sakemoMusta/사케무스타/g') | |
outline=$(echo $outline | sed -r 's/sakemoWow/사케우왕/g') | |
outline=$(echo $outline | sed -r 's/silver119Hing/실버힝/g') | |
outline=$(echo $outline | sed -r 's/silver119Zero/실버제로콜라/g') | |
outline=$(echo $outline | sed -r 's/silver119Tach/실버땃쥐/g') | |
outline=$(echo $outline | sed -r 's/silver119Hi/실버하이/g') | |
outline=$(echo $outline | sed -r 's/silver119Hmm/실버흠/g') | |
outline=$(echo $outline | sed -r 's/silver119Heuk/실버흑/g') | |
outline=$(echo $outline | sed -r 's/ychickBoonuhbbang/치킨붕어빵/g') | |
outline=$(echo $outline | sed -r 's/ychickMelona/치킨메로나/g') | |
outline=$(echo $outline | sed -r 's/ychickLeftthigh/치킨닭다리/g') | |
outline=$(echo $outline | sed -r 's/ychickRightwing/치킨닭날개/g') | |
outline=$(echo $outline | sed -r 's/ychickIschicken/치킨은치킨/g') | |
outline=$(echo $outline | sed -r 's/ychickComeownism/치킨털산주의/g') | |
outline=$(echo $outline | sed -r 's/ㄴㄴ/노노/g') | |
outline=$(echo $outline | sed -r 's/ㄱㄱ/고고/g') | |
outline=$(echo $outline | sed -r 's/ㅊㅋ/추카/g') | |
outline=$(echo $outline | sed -r 's/ㅊㅊ/추추/g') | |
outline=$(echo $outline | sed -r 's/ㄹㅇ/레알/g') | |
outline=$(echo $outline | sed -r 's/ㅅㄱ/수고/g') | |
outline=$(echo $outline | sed -r 's/ㅇㅎ/아항/g') | |
outline=$(echo $outline | sed -r 's/ㅅㅌㅊ/가능/g') | |
outline=$(echo $outline | sed -r 's/ㅆㅅㅌㅊ/쉽가능/g') | |
outline=$(echo $outline | sed -r 's/시발([^역])/야발\1/g') | |
outline=$(echo $outline | sed -r 's/[시씨][발팔]/야발/g') | |
outline=$(echo $outline | sed -r 's/ㅅㅂ/야발/g') | |
outline=$(echo $outline | sed -r 's/링크/__eSqRingKeu/g') | |
outline=$(echo $outline | sed -r 's/젤다/__eSqJelDa/g') | |
outline=$(echo $outline | sed -r 's/__eSqRingKeu/젤다/g') | |
outline=$(echo $outline | sed -r 's/__eSqJelDa/링크/g') | |
outline=$(echo $outline | sed -r 's/https?:[^ ]+/(젤다)/g') | |
outline=$(echo $outline | sed -r 's/\(?+\)//g') | |
outline=$(echo $outline | sed -r 's/못읽/몯읽/g') | |
outline=$(echo $outline | sed -r 's/[vV]ulpe/불페/g') | |
outline=$(echo $outline | sed -r 's/[tT]aimu/타이무/g') | |
speaker=$(echo $lastline | sed -r 's/\[[^\n]+\] <[~!\^$%+]*([^\n<>]+)>[^\n]+/\1/') | |
speakerhash=$(( $(cksum <<< "$speaker" | cut -f 1 -d ' ') )) | |
speakernumber=$(( ($speakerhash % 7) + 1 )) | |
speakerstring="ko+m$speakernumber" | |
speakerpitch=$(( ($speakerhash % 60) + 20 )) | |
outline=${outline:0:100} | |
# echo $lastline | |
echo "["$speakerstring-$speakerpitch"]$" $speaker":" $outline | |
espeak-ng -s 250 -v $speakerstring -p $speakerpitch "$outline" 2>/dev/null | |
sleep 0.2 | |
done |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
file=~/.chatty/logs/#$1.log | |
rm speechtemp.txt | |
rm speechtemp.tmp | |
echo "Make sure to run 'twitch-tts-read.sh' to actually read the chat!" | |
while : | |
do | |
event=$(inotifywait -q $file) | |
echo $(tail -n 1 $file) >> speechtemp.txt | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment