[{"data":1,"prerenderedAt":389},["ShallowReactive",2],{"project-40722317":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":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":44,"post_text":47,"what":48,"said":84,"maker_in_thread":210,"shape":223,"grid":228,"attempts":351,"same_week":352,"maker_shows":33,"maker_hidden":381,"reader_version":382,"card":383},"40722317","RTranslator","An open source and local translation app","title","Show HN: I made an open source and local translation app","https:\u002F\u002Fgithub.com\u002Fniedev\u002FRTranslator","github.com","niedev",1718746011,2024,236,56,312,3515,9,"notable","languages","translation app","mobile_app",[24,25,26,27],"offline translation","real-time translation","speech translation android","open source translator","mixed",-0.167,{"positive":31,"neutral":32,"mixed":33,"critical":18},4,13,1,27,{"privacy":36,"docs":38,"performance":39,"idea":40,"execution":41,"design":43},{"positive":37,"critical":33},0,{"positive":33,"critical":37},{"positive":37,"critical":37},{"positive":33,"critical":37},{"positive":33,"critical":42},6,{"positive":37,"critical":37},[33,37,33,37,45,46,37,37,45,45,46,37,37,37,37,45,37,45,33,45,37,33,45,37,46,45,37,45,45,33,37,46,33,45,45,33,33,45,37,45],3,5,"A few years ago, right after high school, I decided to try to make a simultaneous translation app for Android as a side project, it took longer than expected (about 2 years) and I had to make a lot of compromises (I had to use Google's API and therefore make users use a developer key because at the time there were no free solutions for speech recognition and translation that had good quality). At the end of university, I decided to pick it up again and finally, using OpenAi's Whisper for speech recognition and Meta's NLLB for translation (with both running locally on the phone), I managed to m",{"problem":49,"audience":55,"pricing":56,"motivation":62,"time_to_build":55,"stack":66,"openness":81,"stage":82,"team_size":83},{"value":50,"source":51,"evidence":52},"Real-time simultaneous translation between people speaking different languages, offline","maker",[53],{"id":54},"post",null,{"value":57,"source":51,"evidence":58},"Free, funded by donations",[59],{"id":60,"by":11,"text":61},"40725589","I know that, but since I make money only from donations without giving anything in return of the money I am considered non commercial. For now I decided to use NLLB instead of…",{"value":63,"source":51,"evidence":64},"Side project for a simultaneous translation app, originally limited by lack of free speech and translation options",[65],{"id":54},[67,71,75],{"value":68,"source":51,"evidence":69},"Whisper (speech recognition, runs locally)",[70],{"id":54},{"value":72,"source":51,"evidence":73},"Meta NLLB (translation, runs locally)",[74],{"id":54},{"value":76,"source":51,"evidence":77},"Java",[78],{"id":79,"by":11,"text":80},"40726947","Yes I agree with you, moreover for now I am much better as a Java or C developer than as a web developer, so for me the native approach is also simpler. However, yes, I…","open_source","beta","solo",{"praise":85,"objections":109,"requests":154,"questions":178,"alternatives":190},[86,98],{"value":87,"source":88,"evidence":89},"Clean, nice UI","commenter",[90,94],{"id":91,"by":92,"text":93},"40723994","owenpalmer","The UI is nice and clean, but I don't have a secondary device to test out the conversation mode. A video demo of how this works would be nice. The first translation I tried was…",{"id":95,"by":96,"text":97},"40725030","8mobile","Congratulations to the translator, very nice and clean. Will you release a version for iOS or Progressive Web App in the future?",{"value":99,"source":88,"evidence":100},"Useful offline translation idea",[101,105],{"id":102,"by":103,"text":104},"40727645","teleforce","Great we are more than a century ahead of schedule for Star Trek universal translator [1]. Joking aside, this will be very beneficial software if it can work seamlessly in…",{"id":106,"by":107,"text":108},"40727046","spacemanspiff01","What does the latency look like with this?",[110,121,128,143],{"value":111,"source":88,"evidence":112},"NLLB license is non-commercial, so calling the app open source is inaccurate",[113,117],{"id":114,"by":115,"text":116},"40724887","mrwyz","The app looks very cool, but you might have a licensing issue; Meta's NLLB models are CC-BY-NC 4.0 (non-commercial use only). I could recommend checking out the OPUS-NLP models,…",{"id":118,"by":119,"text":120},"40725033","Flimm","In that case, it is not open source. Part 6 of the open source definition by OSI (the only commonly accepted definition) includes this requirement: > 6. No Discrimination Against…",{"value":122,"source":88,"evidence":123},"Privacy policy still refers to Google and sends data to Google",[124],{"id":125,"by":126,"text":127},"40730722","gslepak","If you are doing translation locally on the device, why does your Privacy Policy say you are sending voice and transcriptions as well as personal location data to Google? >…",{"value":129,"source":88,"evidence":130},"TTS initialization errors on several custom ROMs",[131,135,139],{"id":132,"by":133,"text":134},"40730204","sillystuff","FYI, After model download, I get an error: ``` There was an error with the tts initialization ``` Using LineageOS+Microg and eSpeak for TTS (equivalent android version = 13).…",{"id":136,"by":137,"text":138},"40725623","t0bia_s","After downloading library I got error: There was an error with the tts initialising. Retry won't do anything.",{"id":140,"by":141,"text":142},"40724920","khimaros","this looks really exciting! sadly running into an issue with TTS initialization on CalyxOS with the eSpeak TTS engine.",{"value":144,"source":88,"evidence":145},"Poor translation quality for short inputs and some languages like Turkish",[146,147,151],{"id":91,"by":92,"text":93},{"id":148,"by":149,"text":150},"40757935","levhawk","I like the idea, it's awesome! Too bad that NLLB, despite being advertised as specialized translation LLM, doesn't work with Turkish - it generates rubbish like Google Translate,…",{"id":152,"by":149,"text":153},"40761814","So, there's a hope, cool Just for the reference, what I have to face with: \"Sizinde Sular kokuyormu çok kötü koku var baneda mutfakta\" NLLB gives: \"You smell like water. It…",[155,163,170],{"value":156,"source":88,"evidence":157},"iOS version",[158,162],{"id":159,"by":160,"text":161},"40725906","nanovision","This looks neat. Surprised to find that it only got 40 upvotes on Producthunt. Just bookmarked on Github. Any chance to launch it for iOS as well?",{"id":95,"by":96,"text":97},{"value":164,"source":88,"evidence":165},"F-Droid release",[166],{"id":167,"by":168,"text":169},"40725049","tonetegeatinst","Any change on an fdroid release?",{"value":171,"source":88,"evidence":172},"Video demo",[173,177],{"id":174,"by":175,"text":176},"40724386","tamimio","As said, a video demo would be great, especially since it is not on iOS yet, but it looks great!",{"id":91,"by":92,"text":93},[179,186],{"value":180,"source":88,"evidence":181},"Performance on average\u002Flow-end devices",[182],{"id":183,"by":184,"text":185},"40726381","NKosmatos","Nice one! Thanks for sharing this. If possible, it would be good to include a list of devices that you know performance is good. We can all understand that most flagship mobiles…",{"value":187,"source":88,"evidence":188},"Latency numbers",[189],{"id":106,"by":107,"text":108},[191,199,203],{"value":192,"source":88,"evidence":193},"Google Translate",[194,198],{"id":195,"by":196,"text":197},"40728225","ssrlcc","This app is very cool! In walkie talkie mode, you may want to tweak the UI to make it clearer when the microphone is listening and when it's not. I saw the microphone icon…",{"id":148,"by":149,"text":150},{"value":200,"source":88,"evidence":201},"ChatGPT",[202],{"id":148,"by":149,"text":150},{"value":204,"source":88,"evidence":205},"3PO app (non-local translation)",[206],{"id":207,"by":208,"text":209},"40729111","billylo","Hi, I made a non-local version that supports translation to other languages. Android: https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=org.evergreenlabs.c3po iOS:…",{"comments":211,"answered":212,"key":213},24,8,[214,217,220],{"id":215,"text":216},"40730927","The position sent to Google is an error that I didn't see (I will correct it in 5 minutes), the rest, as I say in the readme, is due to the fact that the privacy policy used for…",{"id":218,"text":219},"40725761","Meta defines NLLB as open source, but assuming it isn't (I know Meta It's not a company that has a problem with lying), my code is open source, so how should I define my app? I…",{"id":221,"text":222},"40726655","it's the closest, but it's a very broad and not so well known term, maybe defining my app open source is not technically a perfect term, but it's the clearest in describing it…",{"commenters":224,"max_depth":225,"maker_replies":211,"first_comment_mins":226,"lifespan_hours":227},26,7,264,129,[229,231,233,235,236,238,241,242,246,248,250,252,255,258,260,262,265,267,270,272,274,276,279,281,282,284,286,289,291,293,294,297,299,301,303,305,308,309,312,315,317,319,321,323,326,328,330,332,334,337,338,341,343,345,347,349],[125,37,33,230,126,37],"project\u002Fcritical\u002Fprivacy",[215,37,37,232,11,33],"project\u002Fneutral\u002Fprivacy",[114,33,33,234,115,37],"project\u002Fcritical\u002Fnone",[118,33,33,234,119,37],[218,33,37,237,11,33],"project\u002Fneutral\u002Fdocs",[239,33,45,237,240,37],"40726136","badLiveware",[221,33,37,237,11,33],[243,33,46,244,245,37],"40727136","project\u002Fpositive\u002Fdocs","regen7253",[247,33,37,237,11,33],"40727317",[249,33,37,237,11,33],"40726699",[60,33,37,251,11,33],"project\u002Fneutral\u002Fnone",[253,33,45,251,254,37],"40725965","EMIRELADERO",[183,256,45,257,184,37],2,"project\u002Fneutral\u002Fperformance",[259,256,37,257,11,33],"40726459",[102,45,46,261,103,37],"project\u002Fpositive\u002Fidea",[263,45,37,264,11,33],"40727779","project\u002Fneutral\u002Fidea",[207,45,37,266,208,37],"other\u002Fneutral\u002Fnone",[268,45,37,266,269,37],"40770174","hcarrega",[271,45,37,266,208,37],"40771040",[273,45,37,266,269,37],"40773001",[275,45,37,266,269,37],"40770226",[277,31,45,237,278,37],"40727078","pcthrowaway",[280,31,37,237,11,33],"40727089",[174,46,45,237,175,37],[283,46,37,237,11,33],"40725608",[91,42,33,285,92,37],"project\u002Fcritical\u002Fexecution",[287,42,37,288,11,33],"40725533","project\u002Fneutral\u002Fexecution",[148,225,45,290,149,37],"project\u002Fmixed\u002Fexecution",[292,225,37,288,11,33],"40758406",[152,225,33,285,149,37],[295,225,37,296,11,33],"40762993","maker\u002Fneutral\u002Fnone",[195,212,45,298,196,37],"project\u002Fneutral\u002Fdesign",[300,212,37,298,11,33],"40728372",[159,18,46,302,160,37],"project\u002Fpositive\u002Fnone",[304,18,37,251,11,33],"40725975",[306,18,45,296,307,37],"40726156","ChrisMarshallNY",[79,18,37,296,11,33],[310,18,45,311,307,37],"40727067","maker\u002Fneutral\u002Fdocs",[313,18,37,314,11,33],"40727652","maker\u002Fpositive\u002Fnone",[95,316,45,251,96,37],10,[318,316,37,251,11,33],"40725783",[132,320,33,285,133,37],11,[322,320,37,288,11,33],"40730516",[324,320,46,325,133,37],"40732235","maker\u002Fpositive\u002Fexecution",[136,327,33,285,137,37],12,[329,327,37,288,11,33],"40725676",[331,327,45,288,137,37],"40725772",[333,327,37,288,11,33],"40725850",[335,327,45,288,336,37],"40726500","tmjwid",[140,32,33,285,141,37],[339,32,33,285,340,37],"40725225","the4anoni",[342,32,37,288,11,33],"40725637",[167,344,45,251,168,37],14,[346,344,37,251,11,33],"40725656",[106,348,45,257,107,37],15,[350,348,37,257,11,33],"40729607",[],[353,358,363,368,373,377],{"id":354,"name":355,"points":356,"category":357},"40694254","MUREX Robotics network switch",666,"hardware",{"id":359,"name":360,"points":361,"category":362},"40717398","Radius",351,"consumer_social",{"id":364,"name":365,"points":366,"category":367},"40669337","Shpool",323,"dev_tools",{"id":369,"name":370,"points":371,"category":372},"40719782","Billard",306,"creative",{"id":374,"name":375,"points":376,"category":367},"40710154","Tokencost",268,{"id":378,"name":379,"points":380,"category":367},"40700343","SQLite Database Explorer",188,false,"v2",{"id":384,"name":5,"line":6,"ai":381,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":385,"top":18,"kw":386,"maker":11,"domain":10,"tier":19,"attempts":37,"strip":387,"url":9,"mix":388,"praise":87,"objection":111,"sub":21},40722317,-0.17,[24,25,26,27],"1010350033500003031301305303310513311303",[31,32,33,18],1794036656470]