Devdays'19 Hackathon (ክፍል 2)፡ የድምጽ መልእክት መተንተን ለቴሌግራም እና ሰዋሰው አረጋጋጭ በIntelliJ IDEA

የማስተርስ ፕሮግራም ተማሪዎች ስለተሳተፉበት የፀደይ hackathon Devdays ፕሮጀክቶች መነጋገር እንቀጥላለን "የሶፍትዌር ልማት / የሶፍትዌር ምህንድስና".

Hackathon Devdays'19 (ክፍል 2)፡ የድምጽ መልእክት ተንታኝ ለቴሌግራም እና ሰዋሰው ማጣራት በIntelliJ IDEA

በነገራችን ላይ አንባቢዎችን እንድትቀላቀሉ ልንጋብዝ እንወዳለን። የማስተርስ ተማሪዎች VK ቡድን. በውስጡ ስለ ቅጥር እና ጥናት የቅርብ ጊዜ ዜናዎችን እናተምታለን። በክፍት ቀን ላይ ያለ ቪዲዮ በቡድኑ ውስጥም ሊገኝ ይችላል. እናስታውስዎታለን፡ ዝግጅቱ ኤፕሪል 29 ላይ ይከናወናል፣ ዝርዝሮች የመስመር ላይ.

የቴሌግራም ዴስክቶፕ የድምጽ መልእክት ተንታኝ

Hackathon Devdays'19 (ክፍል 2)፡ የድምጽ መልእክት ተንታኝ ለቴሌግራም እና ሰዋሰው ማጣራት በIntelliJ IDEA

የሃሳቡ ደራሲ
Khoroshev Artyom

የቡድን ጥንቅር

Khoroshev Artem - የፕሮጀክት ሥራ አስኪያጅ / ገንቢ / QA
ኤሊሴቭ አንቶን - የንግድ ተንታኝ / የግብይት ስፔሻሊስት
ማሪያ ኩክሊና - የዩአይ ዲዛይነር / ገንቢ
Bakhvalov Pavel - UI ዲዛይነር / ገንቢ / QA

በእኛ እይታ ቴሌግራም ዘመናዊ እና ምቹ መልእክተኛ ሲሆን የፒሲ ስሪቱ ተወዳጅ እና ክፍት ምንጭ ነው, ይህም ለማሻሻል ያስችላል. ደንበኛው በጣም የበለጸገ ተግባር ያቀርባል. ከመደበኛ የጽሑፍ መልእክቶች በተጨማሪ የድምጽ ጥሪዎችን፣ የቪዲዮ መልዕክቶችን እና የድምጽ መልዕክቶችን ይዟል። እና አንዳንድ ጊዜ በተቀባያቸው ላይ ችግርን የሚያመጣው የመጨረሻው ነው. ብዙውን ጊዜ በኮምፒተር ወይም ላፕቶፕ ውስጥ ሆነው የድምፅ መልእክት ማዳመጥ አይችሉም። የድባብ ጫጫታ፣ የጆሮ ማዳመጫዎች እጥረት ሊኖር ይችላል፣ ወይም ማንም የመልእክቱን ይዘት እንዲሰማ አትፈልጉም። ቴሌግራም በስማርትፎን ላይ ከተጠቀሙ እንደዚህ ያሉ ችግሮች በጭራሽ አይከሰቱም ፣ ምክንያቱም እንደ ላፕቶፕ ወይም ፒሲ ሳይሆን በቀላሉ ወደ ጆሮዎ ማምጣት ይችላሉ ። ይህንን ችግር ለመፍታት ሞክረናል.

በዴቭዴይስ የፕሮጀክታችን ግብ የተቀበሉትን የድምፅ መልዕክቶችን ወደ ቴሌግራም ዴስክቶፕ ደንበኛ (ከዚህ በኋላ ቴሌግራም ዴስክቶፕ በመባል ይታወቃል) ወደ ጽሑፍ የመተርጎም ችሎታ ማከል ነበር።

በአሁኑ ጊዜ ሁሉም አናሎጎች የድምጽ መልእክት ለመላክ እና በምላሽ ጽሑፍ የሚቀበሉባቸው ቦቶች ናቸው። በዚህ በጣም ደስተኛ አይደለንም፡ መልእክትን ወደ ቦት ማስተላለፍ በጣም ምቹ አይደለም፡ ቤተኛ ተግባር እንዲኖረን እንፈልጋለን። በተጨማሪም፣ ማንኛውም ቦት በንግግር ማወቂያ ኤፒአይ እና በተጠቃሚው መካከል እንደ መካከለኛ ሆኖ የሚሰራ ሶስተኛ አካል ነው፣ እና ይህ ቢያንስ ደህንነቱ ያልተጠበቀ ነው።

ቀደም ሲል እንደተገለፀው ቴሌግራም-ዴስክቶፕ ሁለት ጉልህ ጥቅሞች አሉት-ቀላል እና የስራ ፍጥነት. እና ይሄ በአጋጣሚ አይደለም፣ ምክንያቱም ሙሉ በሙሉ በC++ ተጽፏል። እና አዲስ ተግባርን በቀጥታ ለደንበኛው ለመጨመር ስለወሰንን በ C ++ ውስጥ ማዳበር ነበረብን።

Hackathon Devdays'19 (ክፍል 2)፡ የድምጽ መልእክት ተንታኝ ለቴሌግራም እና ሰዋሰው ማጣራት በIntelliJ IDEAበቡድናችን ውስጥ 4 ሰዎች ነበሩ። መጀመሪያ ላይ ሁለት ሰዎች ለንግግር ማወቂያ የሚሆን ተስማሚ ቤተ-መጽሐፍት እየፈለጉ ነበር, አንድ ሰው የቴሌግራም-ዴስክቶፕ ምንጭ ኮድ እያጠና ነበር, ሌላው ደግሞ የግንባታ ፕሮጀክቱን እያሰማራ ነበር. ቴሌግራም ዴስክቶፕ. በኋላ፣ ሁሉም ሰው UI በመጠገን እና በማረም ስራ ተጠምዶ ነበር።

የታሰበውን ተግባር መተግበር አስቸጋሪ አይሆንም, ነገር ግን ሁልጊዜ እንደሚከሰት, ችግሮች ተፈጠሩ.

የችግሩ መፍትሔ ሁለት ገለልተኛ ንዑስ ተግባራትን ያቀፈ ነው፡ ተስማሚ የንግግር ማወቂያ መሳሪያ መምረጥ እና ለአዲስ ተግባር UI መተግበር።

ለድምጽ ማወቂያ ቤተ-መጽሐፍት በምንመርጥበት ጊዜ ወዲያውኑ ሁሉንም ከመስመር ውጭ ኤፒአይዎችን መተው ነበረብን፣ ምክንያቱም የቋንቋ ሞዴሎች ብዙ ቦታ ይወስዳሉ። ግን የምንናገረው ስለ አንድ ቋንቋ ብቻ ነው። የመስመር ላይ ኤፒአይን መጠቀም እንዳለብን ግልጽ ሆነ። በኋላ እንደ Google ፣ Yandex እና Microsoft ያሉ ግዙፍ ሰዎች የንግግር ማወቂያ አገልግሎቶች በጭራሽ ነፃ አይደሉም ፣ እና በሙከራ ጊዜ ረክተን መኖር አለብን። በውጤቱም, Google Speech-To-Text አገልግሎቱን ለመጠቀም ቶከን እንድታገኝ ስለሚያስችል ተመርጧል ይህም ለአንድ አመት ሙሉ ይቆያል.

ሁለተኛው ያጋጠመን ችግር ከ C++ አንዳንድ ድክመቶች ጋር የተያያዘ ነው - የተማከለ ማከማቻ በሌለበት የተለያዩ ቤተ-መጻሕፍት መካነ አራዊት። የቴሌግራም ዴስክቶፕ በብዙ ሌሎች ስሪት-ተኮር ቤተ-መጽሐፍት ላይ የሚመረኮዝ ሆኖ ይከሰታል። ኦፊሴላዊው ማከማቻ አለው። መመሪያ ፕሮጀክቱን ለመገጣጠም. እንዲሁም ስለ ግንባታ ችግሮች ለምሳሌ ብዙ ቁጥር ያላቸው ክፍት ጉዳዮች ጊዜ и два. ሁሉም ችግሮች የግንባታው ስክሪፕት ለኡቡንቱ 14.04 መጻፉን እና በኡቡንቱ 18.04 ስር ቴሌግራም በተሳካ ሁኔታ ለመስራት ለውጦች መደረግ ነበረባቸው።

ቴሌግራም ዴስክቶፕ ራሱ ለመገጣጠም ብዙ ጊዜ ይወስዳል፡ ላፕቶፕ ኢንቴል ኮር i5-7200U ባለው ላፕቶፕ፣ ሙሉ ስብሰባ (flag -j 4) ከሁሉም ጥገኞች ጋር ሶስት ሰዓት ያህል ይወስዳል። ከእነዚህ ውስጥ ደንበኛው እራሱን በማገናኘት 30 ደቂቃ ያህል ይወስዳል (በኋላ ላይ በ Debug ውቅር ውስጥ ማገናኘት 10 ደቂቃ ያህል ይወስዳል) ነገር ግን የማገናኘት ደረጃ ለውጦችን ካደረጉ በኋላ በእያንዳንዱ ጊዜ መደገም አለበት.

ችግሮቹ ቢኖሩም, የተፀነሰውን ሀሳብ, እንዲሁም ማሻሻያ ማድረግ ችለናል ስክሪፕት ይገንቡ ለኡቡንቱ 18.04. የሥራው ማሳያ በ ላይ ይታያል ማያያዣ. በርካታ እነማዎችንም አካተናል። ከሁሉም የድምጽ መልዕክቶች ቀጥሎ አንድ አዝራር ታይቷል፣ ይህም መልእክቱን ወደ ጽሑፍ እንዲተረጉሙ ያስችልዎታል። በቀኝ ጠቅ በማድረግ ለስርጭት የሚውለውን ቋንቋ በተጨማሪ መግለጽ ይችላሉ። በ ማያያዣ ደንበኛ ለማውረድ ይገኛል።

ማከማቻ.

በእኛ አስተያየት ፣ ለብዙ ተጠቃሚዎች ምቹ የሆነ የተግባር ጽንሰ-ሀሳብ ጥሩ ማረጋገጫ ሆኖ ተገኝቷል። በቀጣይ የቴሌግራም ዴስክቶፕ እትሞች ላይ እንደምናየው ተስፋ እናደርጋለን።

በIntelliJ IDEA ውስጥ የተሻሻለ የተፈጥሮ ቋንቋ ድጋፍ

Hackathon Devdays'19 (ክፍል 2)፡ የድምጽ መልእክት ተንታኝ ለቴሌግራም እና ሰዋሰው ማጣራት በIntelliJ IDEA

የሃሳቡ ደራሲ

ታንኮቭ ቭላዲላቭ

የቡድን ጥንቅር

ታንኮቭ ቭላዲላቭ (የቡድን መሪ፣ ከቋንቋ Tool እና IntelliJ IDEA ጋር በመስራት ላይ)
Nikita Sokolov (ከቋንቋ መሣሪያ ጋር በመስራት እና UI መፍጠር)
Khvorov አሌክሳንደር (ከቋንቋ መሣሪያ ጋር በመስራት እና አፈጻጸምን በማሻሻል ላይ)
ሳዶቭኒኮቭ አሌክሳንደር (የምልክት ቋንቋዎችን እና ኮድን ለመተንተን ድጋፍ)

ለIntelliJ IDEA የተለያዩ ጽሑፎችን (አስተያየቶችን እና ሰነዶችን፣ በኮድ ውስጥ ያሉ ቀጥተኛ መስመሮችን፣ በማርዳውድ ወይም በኤክስኤምኤል ማርክ ላይ የተቀረጸ ጽሑፍ) ሰዋሰዋዊ፣ ሆሄያት እና የስታሊስቲክ ትክክለኛነትን የሚፈትሽ ፕለጊን አዘጋጅተናል (በእንግሊዘኛ ይህ ማረም ይባላል)።

የፕሮጄክቱ ሀሳብ መደበኛውን የስፔል ማረም IntelliJ IDEAን ወደ ሰዋሰው ሚዛን ማስፋት፣ በIDE ውስጥ የሰዋስው አይነት ለመስራት ነበር።

የሆነውን ማየት ትችላለህ ማያያዣ.

ደህና ፣ ከዚህ በታች ስለ ተሰኪው ችሎታዎች ፣ እንዲሁም በፍጥረቱ ወቅት ስለተነሱት ችግሮች በበለጠ ዝርዝር እንነጋገራለን ።

ተነሳሽነት

በተፈጥሮ ቋንቋዎች ጽሑፍ ለመጻፍ የተነደፉ ብዙ ምርቶች አሉ፣ ነገር ግን የሰነድ እና የኮድ አስተያየቶች አብዛኛውን ጊዜ የሚጻፉት በልማት አካባቢዎች ነው። በተመሳሳይ ጊዜ፣ አይዲኢዎች በኮድ ውስጥ ስህተቶችን ለማግኘት በጣም ጥሩ ስራ ይሰራሉ፣ነገር ግን በተፈጥሮ ቋንቋዎች ላሉ ጽሑፎች በጣም ተስማሚ አይደሉም። ይህ የእድገት አካባቢው ሳይጠቁም በሰዋሰው፣ በስርዓተ-ነጥብ ወይም በስታይል ስህተቶችን ለመስራት በጣም ቀላል ያደርገዋል። የተጠቃሚ በይነገጽን በመፃፍ ስህተት መሥራቱ በጣም አስፈላጊ ነው ፣ ምክንያቱም ይህ የኮዱን መረዳት ብቻ ሳይሆን የዳበረ መተግበሪያ ተጠቃሚዎችን ጭምር ስለሚነካ ነው።

በጣም ታዋቂ ከሆኑ እና የዳበሩ የልማት አካባቢዎች አንዱ IntelliJ IDEA፣ እንዲሁም በIntelliJ Platform ላይ የተመሰረቱ IDEዎች ናቸው። IntelliJ Platform አስቀድሞ አብሮ የተሰራ የፊደል አራሚ አለው፣ ነገር ግን በጣም ቀላል የሆኑትን ሰዋሰው ስህተቶችን እንኳን አያስወግድም። ከታዋቂዎቹ የተፈጥሮ ቋንቋ ትንተና ሥርዓቶች አንዱን ወደ IntelliJ IDEA ለማዋሃድ ወስነናል።

ትግበራ

Hackathon Devdays'19 (ክፍል 2)፡ የድምጽ መልእክት ተንታኝ ለቴሌግራም እና ሰዋሰው ማጣራት በIntelliJ IDEAእራሳችንን የራሳችንን የጽሁፍ ማረጋገጫ ስርዓት የመፍጠር ስራ አላዘጋጀንም, ስለዚህ አሁን ያለውን መፍትሄ ተጠቀምን. በጣም ተስማሚ አማራጭ ሆኖ ተገኝቷል ቋንቋTool. ፈቃዱ በነፃነት ለዓላማችን እንድንጠቀምበት ፈቅዶልናል፡ ነፃ ነው፣ በጃቫ የተጻፈ እና ክፍት ምንጭ ነው። በተጨማሪም ፣ 25 ቋንቋዎችን ይደግፋል እና ከአስራ አምስት ዓመታት በላይ በልማት ላይ ቆይቷል። ክፍት ቢሆንም፣ LanguageTool የሚከፈልበት የጽሑፍ ማረጋገጫ መፍትሄዎች ከባድ ተፎካካሪ ነው፣ እና በአገር ውስጥ መስራት መቻሉ የገዳይ ባህሪው ነው።

የተሰኪው ኮድ ገብቷል። በ GitHub ላይ ማከማቻዎች. አጠቃላይ ፕሮጀክቱ የተፃፈው በኮትሊን ከትንሽ ጃቫ ለዩአይኤ ጋር ነው። በ hackathon ጊዜ፣ ለማርክዳው፣ JavaDoc፣ HTML እና Plain Text ድጋፍን ተግባራዊ ማድረግ ችለናል። ከጠለፋው በኋላ፣ አንድ ትልቅ ዝማኔ ለኤክስኤምኤል፣ በጃቫ፣ በኮትሊን እና በፓይዘን ውስጥ ያሉ የቁምፊዎች ጽሑፍ እና የፊደል አጻጻፍ ድጋፍን አክሏል።

ችግሮች

በፍጥነት ሁሉንም ፅሁፎች ወደ LanguageTool ለምርመራ የምንመገብ ከሆነ፣ ፍተሻው ራሱ የUI ፍሰቱን ስለሚገድበው የ IDEA በይነገጹ በማንኛውም ከባድ ወይም ያነሰ ከባድ ጽሑፍ ላይ እንደሚቀዘቅዝ ተገነዘብን። ችግሩ በ `ProgressManager.checkCancelled` ቼክ ተፈትቷል - IDEA ፍተሻውን የሚያቋርጥበት ጊዜ ነው ብሎ ካመነ ይህ ተግባር ልዩ ያደርገዋል።

ይህ በረዶዎችን ሙሉ በሙሉ አስቀርቷል, ነገር ግን ለመጠቀም የማይቻል ነው: ጽሑፉን ለማስኬድ በጣም ረጅም ጊዜ ይወስዳል. በተጨማሪም ፣ በእኛ ሁኔታ ፣ ብዙውን ጊዜ የጽሑፉ ትንሽ ክፍል ይለወጣል እና ውጤቱን በሆነ መንገድ መሸጎጥ እንፈልጋለን። በትክክል ያደረግነው ነው። ሁሉንም ነገር ሁልጊዜ ላለመፈተሽ ፣ ጽሑፉን በቆራጥነት ከፋፍለን የተቀየሩትን ብቻ እንፈትሻለን። ጽሑፎቹ ትልቅ ሊሆኑ ስለሚችሉ እና መሸጎጫውን መጫን ስላልፈለግን ጽሑፎቹን ራሳቸው ሳይሆን ሃሽዎቻቸውን ነው ያከማችነው። ይህ ተሰኪው በትልልቅ ፋይሎች ላይም ቢሆን በተቀላጠፈ ሁኔታ እንዲሠራ አስችሎታል።

LanguageTool ከ25 በላይ ቋንቋዎችን ይደግፋል፣ ነገር ግን አንድም ተጠቃሚ ሁሉንም ያስፈልገዋል ብሎ ማሰብ የማይመስል ነገር ነው። በጥያቄ ጊዜ (በዩአይ ምልክት ካደረጉት) ለተወሰነ ቋንቋ ቤተ-መጻሕፍትን ለማውረድ ዕድሉን ለመስጠት ፈልጌ ነበር። ይህንን እንኳን ተግባራዊ አድርገናል፣ ነገር ግን በጣም የተወሳሰበ እና የማይታመን ሆኖ ተገኘ። በተለይም የተለየ ክፍል ጫኚን በመጠቀም LanguageToolን በአዲስ የቋንቋ ስብስብ መጫን ነበረብን እና ከዚያም በጥንቃቄ ማስጀመር ነበረብን። በተመሳሳይ ጊዜ, ሁሉም ቤተ-መጻሕፍት በተጠቃሚ .m2 ማከማቻ ውስጥ ነበሩ, እና በእያንዳንዱ ጅምር ላይ የእነሱን ታማኝነት ማረጋገጥ አለብን. በመጨረሻ፣ ተጠቃሚዎች በተሰኪው መጠን ላይ ችግር ካጋጠማቸው፣ ለብዙ በጣም ታዋቂ ቋንቋዎች የተለየ ፕለጊን እንደምናቀርብ ወስነናል።

ከ hackathon በኋላ

hackathon አብቅቷል፣ ነገር ግን በተሰኪው ላይ ያለው ስራ በጠባብ ቡድን ቀጥሏል። ሕብረቁምፊዎችን፣ አስተያየቶችን እና እንደ ተለዋዋጭ እና የክፍል ስሞች ያሉ የቋንቋ ግንባታዎችን መደገፍ ፈልጌ ነበር። በአሁኑ ጊዜ ይህ የሚደገፈው ለጃቫ፣ ኮትሊን እና ፓይዘን ብቻ ነው፣ ግን ይህ ዝርዝር እንደሚያድግ ተስፋ እናደርጋለን። ብዙ ትናንሽ ሳንካዎችን አስተካክለናል እና ከIdea ውስጠ ግንቡ ፊደል አራሚ ጋር የበለጠ ተኳሃኝ ሆነናል። በተጨማሪም የኤክስኤምኤል ድጋፍ እና ፊደል ማረም ታይቷል። ይህ ሁሉ በቅርብ ጊዜ ባተምነው ​​በሁለተኛው ስሪት ውስጥ ሊገኝ ይችላል.

ቀጥሎ ምንድነው?

እንዲህ ዓይነቱ ፕለጊን ለገንቢዎች ብቻ ሳይሆን ለቴክኒካል ጸሐፊዎችም ጠቃሚ ሊሆን ይችላል (ብዙውን ጊዜ ለምሳሌ በኤክስኤምኤል በ IDE ውስጥ ይሰራል). በየቀኑ ሊፈጠሩ ስለሚችሉ ስህተቶች ጠቃሚ ምክሮች በአርታዒ መልክ ረዳት ሳይኖራቸው በተፈጥሯዊ ቋንቋ መስራት አለባቸው. የእኛ ፕለጊን እንደዚህ አይነት ፍንጮችን ያቀርባል እና በከፍተኛ ትክክለኛነት ያደርገዋል.
አዲስ ቋንቋዎችን በማከል እና የጽሑፍ ፍተሻን ለማደራጀት አጠቃላይ አቀራረብን በመመርመር ፕለጊኑን ለማዘጋጀት አቅደናል። የእኛ የቅርብ ጊዜ ዕቅዶች የስታቲስቲክስ መገለጫዎችን (የጽሑፍ የቅጥ መመሪያን የሚገልጹ ህጎች ስብስብ ፣ ለምሳሌ ፣ “ለምሳሌ አትጻፉ ፣ ግን ሙሉ ቅጹን ይፃፉ”) ፣ መዝገበ ቃላቱን ማስፋፋት እና የተጠቃሚ በይነገጽን ማሻሻል (በተለይ ፣ ተጠቃሚው አንድን ቃል ችላ ለማለት ብቻ ሳይሆን ወደ መዝገበ-ቃላቱ ለመጨመር ፣ የንግግር ክፍልን የሚያመለክት) ዕድል መስጠት እንፈልጋለን።

ምንጭ፡ www.habr.com

አስተያየት ያክሉ