[{"data":1,"prerenderedAt":297},["ShallowReactive",2],{"project-13907010":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":33,"aspects":34,"strip":39,"post_text":41,"what":42,"said":84,"maker_in_thread":175,"shape":184,"grid":187,"attempts":261,"same_week":262,"maker_shows":32,"maker_hidden":289,"reader_version":290,"card":291},"13907010","Aeneas","a Python audio\u002Ftext aligner","title","Show HN: Aeneas – a Python audio\u002Ftext aligner","https:\u002F\u002Fgithub.com\u002Freadbeyond\u002Faeneas","github.com","alpe",1489931035,2017,188,35,184,2242,9,"notable","dev_tools","audio text alignment","library",[24,21,25,26],"forced alignment","subtitle captions","python audio sync","loved",0.339,{"positive":30,"neutral":18,"mixed":31,"critical":32},7,0,1,17,{"idea":35,"performance":37,"execution":38},{"positive":36,"critical":32},5,{"positive":31,"critical":31},{"positive":31,"critical":31},[36,31,40,31,31,36,31,36,31,40,31,32,31,36,40,40,31,40,31,31,31,36,31,31,36,31,40,40,40,31,40,31,36,31,31],3,null,{"problem":43,"audience":41,"pricing":41,"motivation":53,"time_to_build":41,"stack":60,"openness":81,"stage":82,"team_size":83},{"value":44,"source":45,"evidence":46},"Aligns spoken audio with its text to get timings, e.g. for ebook-audiobook sync or captions","maker",[47,50],{"id":48,"by":11,"text":49},"13908648","Thank you. Indeed, while aeneas was created for ebook-audiobook synchronization, several of its current users are producing closed captions --- because, in most cases, they…",{"id":51,"by":11,"text":52},"13912631","To elaborate a bit further, as indeed the closed captioning applications are very important, from hearing-impaired people to the dyslexic, to second language learners. Let's…",{"value":54,"source":45,"evidence":55},"Built for ebook-audiobook synchronization",[56,57],{"id":48,"by":11,"text":49},{"id":58,"by":11,"text":59},"13907384","aeneas is not based on ASR (i.e., it does not try to \"recognize\" words and align them with the input text), but on the \"older\" MFCC + DTW approach. Hence, it is difficult to give…",[61,67,71,77],{"value":62,"source":45,"evidence":63},"Python",[64],{"id":65,"by":11,"text":66},"13908493","Definitely. Actually, aeneas can be used as a Python library (rather than just a CLI tool), and you can definitely provide an audio file, a list of audio intervals where the…",{"value":68,"source":45,"evidence":69},"MFCC and DTW alignment",[70],{"id":58,"by":11,"text":59},{"value":72,"source":45,"evidence":73},"ffmpeg",[74],{"id":75,"by":11,"text":76},"13907576","Hi, thank you. Having it on conda would be great (https:\u002F\u002Fgithub.com\u002Freadbeyond\u002Faeneas\u002Fissues\u002F158 ), so if you feel like it, it would be wonderful! The two points that proved…",{"value":78,"source":45,"evidence":79},"espeak",[80],{"id":75,"by":11,"text":76},"open_source","launched","unknown",{"praise":85,"objections":104,"requests":119,"questions":141,"alternatives":155},[86,98],{"value":87,"source":88,"evidence":89},"Useful for captioning and transcript alignment","commenter",[90,94],{"id":91,"by":92,"text":93},"13907297","psobot","This is super cool. I'm trying to think of common practical applications for this - would one use this to sync a script with a performance? Could this remove a lot of the work…",{"id":95,"by":96,"text":97},"13907653","TuringNYC","Thanks for creating this. I can imagine a not-so-distant future where thousands of random video-watchers could annotate tiny parts of videos via some free-form box, and aeneas…",{"value":99,"source":45,"evidence":100},"Easy to install and run compared to other aligners",[101],{"id":102,"by":11,"text":103},"13912511","I would like to note once again that aeneas is not based on automatic speech recognition techniques, but on MFCC + DTW, which is an even older approach, with pro's and con's.…",[105,112],{"value":106,"source":45,"evidence":107},"Struggles with non-speech audio such as singing",[108,111],{"id":109,"by":11,"text":110},"13907356","Thank you. Indeed several users of aeneas adopted it for producing SRT\u002FTTML files, i.e. captions, for videos, both online and offline --- and many of them start with an existing…",{"id":102,"by":11,"text":103},{"value":113,"source":45,"evidence":114},"Less accurate than ASR aligners at word level",[115,116],{"id":102,"by":11,"text":103},{"id":117,"by":11,"text":118},"13908407","Yes, there are several other open source aligners out there, mostly from academic research or derived from academic projects. In my personal GitHub page I have a repo with an…",[120,127,134],{"value":121,"source":88,"evidence":122},"Support for user-defined non-speech intervals",[123],{"id":124,"by":125,"text":126},"13908208","tetraodonpuffer","> there are limitations on the amount of \"non speech\" that aeneas can tolerate couldn't you have as part of the input also a very simple map where users could define times that…",{"value":128,"source":88,"evidence":129},"Conda package",[130],{"id":131,"by":132,"text":133},"13907523","afarrell","This is really cool! Would you like me to make a conda package for this? I can do so for Linux and OSX so that someone who uses python for data science can do `conda install…",{"value":135,"source":88,"evidence":136},"Live microphone alignment",[137],{"id":138,"by":139,"text":140},"13912586","hftf","Do you know of any existing forced alignment tools that work well with live audio (microphone) input? I would like to create a live stream in which the words of a known text are…",[142,149],{"value":143,"source":88,"evidence":144},"What is the alignment accuracy?",[145],{"id":146,"by":147,"text":148},"13907349","braindead_in","What's the accuracy level of alignment?",{"value":150,"source":88,"evidence":151},"Does it work with gaps in the transcript?",[152],{"id":153,"by":147,"text":154},"13907513","Thanks for the explanation. Will it work if there are gaps in the transcript? Eg, the clean verbatim transcript where the ah's and uhm's are left out.",[156,163,169],{"value":157,"source":88,"evidence":158},"Gentle",[159],{"id":160,"by":161,"text":162},"13908062","oulipo","This code is also useful \u003Chttps:\u002F\u002Fgithub.com\u002Flowerquality\u002Fgentle>",{"value":164,"source":45,"evidence":165},"Kaldi",[166],{"id":167,"by":11,"text":168},"13908621","I agree on most of your observations. However, please note that other tools are better suited than aeneas if one wants to align at phoneme level: gentle, Kaldi, SPPAS, etc.…",{"value":170,"source":45,"evidence":171},"CMU Sphinx",[172],{"id":173,"by":11,"text":174},"13912756","For sure aeneas is not suitable, since it requires all the text and all the audio in advance. But ASR-based tools in theory would allow such an operation mode, but I have not…",{"comments":176,"answered":177,"key":178},16,8,[179,180,181],{"id":109,"text":110},{"id":65,"text":66},{"id":182,"text":183},"13908579","> Might also be possible to look at the spectrum at any time to possibly identify areas of the file to skip. I would say yes and no. Currently you can add a switch that makes…",{"commenters":176,"max_depth":36,"maker_replies":176,"first_comment_mins":185,"lifespan_hours":186},51,145,[188,190,192,194,196,197,200,201,204,207,209,211,215,216,219,223,226,227,228,229,232,234,235,236,237,240,241,244,247,249,250,251,253,255,259],[91,31,36,189,92,31],"project\u002Fpositive\u002Fidea",[109,31,31,191,11,32],"project\u002Fneutral\u002Fperformance",[124,31,40,193,125,31],"project\u002Fneutral\u002Fidea",[65,31,31,195,11,32],"project\u002Fneutral\u002Fexecution",[182,31,31,191,11,32],[198,31,36,189,199,31],"13908517","rspeer",[167,31,31,195,11,32],[202,31,36,189,203,31],"13909330","x1798DE",[205,31,31,206,11,32],"13912540","project\u002Fmixed\u002Fperformance",[208,31,40,193,203,31],"13915291",[210,31,31,191,11,32],"13915968",[212,31,32,213,214,31],"13909872","project\u002Fcritical\u002Fidea","cityhall",[102,31,31,195,11,32],[217,32,36,189,218,31],"13908947","echelon",[220,32,40,221,222,31],"13910017","maker\u002Fneutral\u002Fnone","sargun",[160,224,40,225,161,31],2,"project\u002Fneutral\u002Fnone",[117,224,31,195,11,32],[138,224,40,193,139,31],[173,224,31,195,11,32],[230,224,31,231,139,31],"13912858","commenter\u002Fneutral\u002Fnone",[233,224,31,195,11,32],"13912772",[95,40,36,189,96,31],[48,40,31,193,11,32],[51,40,31,193,11,32],[131,238,36,239,132,31],4,"project\u002Fpositive\u002Fnone",[75,238,31,195,11,32],[242,238,40,221,243,31],"13907753","detaro",[245,36,40,193,246,31],"13908256","rrherr",[146,248,40,191,147,31],6,[58,248,31,191,11,32],[153,248,40,195,147,31],[252,248,31,195,11,32],"13908090",[254,248,36,239,147,31],"13955754",[256,30,31,257,258,31],"13907367","other\u002Fneutral\u002Fnone","aeneasr",[260,30,31,257,11,32],"13907397",[],[263,267,271,276,280,284],{"id":264,"name":265,"points":266,"category":20},"13901005","Ladon",158,{"id":268,"name":269,"points":270,"category":20},"13906014","Klipse",111,{"id":272,"name":273,"points":274,"category":275},"13921364","Marta",106,"productivity",{"id":277,"name":278,"points":279,"category":20},"13908606","OS",97,{"id":281,"name":282,"points":283,"category":20},"13913413","go-sumtype",75,{"id":285,"name":286,"points":287,"category":288},"13920588","FaaS",73,"infrastructure",false,"v2",{"id":292,"name":5,"line":6,"ai":289,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":293,"top":18,"kw":294,"maker":11,"domain":10,"tier":19,"attempts":31,"strip":295,"url":9,"mix":296,"praise":87,"objection":106,"sub":21},13907010,0.34,[24,21,25,26],"50300505030105330300050050333030500",[30,18,31,32],1794036553621]