ãã®è³æã¯ãã©ã€ãã©ãªãŸãã¯ãã¬ãŒã ã¯ãŒã¯ã®éçºã«æºãã人ã ãã§ãªããã¢ããªã±ãŒã·ã§ã³ããããŒããåå¥ã®ã¢ãžã¥ãŒã«ã«åé¢ãããããåå©çšããããããšãã°ãæçš¿ããŠéçºè ã³ãã¥ããã£ã®æ®ãã®éšåãšã³ãŒããå ±æããã人ã«ã圹ç«ã¡ãŸããããªãã¯ã¢ã¯ã»ã¹ã
ä»ã®ãã¹ãŠã®äººã«ãšã£ãŠãã¹ããŒãªãŒã¯ã¢ãã€ã«SpeechKitããŒã ã®ç涯ããã®æ¬ç©ã®ã¹ããŒãªãŒã§æºããããã®ã§ã楜ããã¯ãã§ãã
å
容
- SpeechKitå ã
- 䜿ããã䟿å©ã§ããããããAPIãèšèšããŸãã
- éçº ã æ©èœããŠæ©èœããã ãã§ãªãããŠãŒã¶ãŒã«ã圹ç«ã€ããã«ã³ãŒãã«è¿œå ãããã®ã
- èµ·å -ãªãªãŒã¹ãããŒã«ãããšãã«å¿ããŠã¯ãªããªããã®ã
SpeechKitå
Yandexã®å éšã§ããã誰ãããããäœã§ããããç¥ã£ãŠããããã§ã¯ãªãã®ã§ãSpeechKitã«ã€ããŠèãããã©ããã¯å°ããŸããã
SpeechKitã¯ããã¹ãŠã®Yandexã¹ããŒããã¯ãããžãŒãžã®æã§ã ã ãã®ã©ã€ãã©ãªã䜿çšãããšãé³å£°ãã¯ãããžãŒãã¢ããªã±ãŒã·ã§ã³ã«çµ±åã§ããŸãïŒé³å£°èªèãšåæãé³å£°ã¢ã¯ãã£ããŒã·ã§ã³ã
ããããé³å£°ã¢ã·ã¹ã¿ã³ãã®ã¢ãªã¹ã«ã€ããŠèããããšãããã§ããã-圌女ã¯SpeechKitã«åºã¥ããŠäœæ¥ããŠããã ãã§ãã SpeechKitèªäœã«ã¯èªèãåæã¯å«ãŸããããµãŒããŒäžã§çºçããŸãã ãããããã¹ãŠãã¢ããªã±ãŒã·ã§ã³ã«çµ±åã§ããã®ã¯ãã©ã€ãã©ãªãä»ããŠã§ãã
éåžžã次ã®è³ªåããããŸã-ãµãŒããŒäžã®ãã¹ãŠãçºçããå Žåãã©ã€ãã©ãªã¯äœãããŸããïŒ ãªãå¿ èŠãªã®ã§ããïŒ
ã©ã€ãã©ãªã¯å€ãã®ããšãè¡ããŸãïŒ
- ãã¹ãŠã®ããã»ã¹ã®åæã ããšãã°ãé³å£°ã¢ã·ã¹ã¿ã³ãã䜿çšããŠããŠãŒã¶ãŒã¯ãã¿ã³ãã¯ãªãã¯ããäœããèšã£ãŠãã¢ã·ã¹ã¿ã³ããäžæãããªã¯ãšã¹ããè¡ããŸãããã¹ãŠã¯ã©ã€ãã©ãªãééããŸãã ããã¯ã©ã€ãã©ãªã®ãŠãŒã¶ãŒã«ãšã£ãŠééçã§ããããŠãŒã¶ãŒã¯ããããã¹ãŠãå¿é ããå¿ èŠã¯ãããŸããã
- ãããã¯ãŒãã³ã° ãã¹ãŠã¯ãµãŒããŒäžã§è¡ããããããããããããŒã¿ãååŸããŠåŠçãããŠãŒã¶ãŒã«æäŸããå¿ èŠããããŸãã SpeechKitã¯ãåããããã¯ãŒã¯æ¥ç¶å ã®è€æ°ã®ç°ãªããµãŒããŒã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸããã1ã€ã¯èªèã«é¢äžãããã1ã€ã¯æå³ã®å²ãåœãŠã«ã3ã€ç®ã¯é³æ¥œèªèã«ããªã©ã§ãã ããã¯ãã¹ãŠã©ã€ãã©ãªå ã«é ãããŠããããŠãŒã¶ãŒã¯å¿é ããå¿ èŠã¯ãããŸããã
- ãªãŒãã£ãªãœãŒã¹ãæäœããŸãã ç§ãã¡ã¯äººéã®ã¹ããŒããæ±ã£ãŠãããé³å£°ã®åŠçãSpeechKitå ã§è¡ãããŸãã ãŸããæšæºããã€ã¹ããæžã蟌ãã ãã§ãªããã©ãããã§ãããŒã¿ãåä¿¡ã§ããŸãã ãã¡ã€ã«ã§ãã¹ããªãŒã ã§ãããŸããŸãããããããã¹ãŠãåŠçã§ããŸãã
SpeechKitã¯å éšããŒã ã§äœ¿çšãããŸãã çŸåšã16ã®YandexããŒã ã«ãã£ãŠçµ±åãããŠããŸãã ãŸãããããè¡ã£ãããã€ãã®å€éšããŒã ã«ã€ããŠãç¥ã£ãŠããŸãã
èšèš
䟿å©ãªã¢ããªã±ãŒã·ã§ã³ã®æå³ãèããŠã¿ãŸãããã éåžžãããã¯ææ ®æ·±ãç解ããããUXãåé¡ã®è§£æ±ºçãå®å®ããåäœãªã©ã§ãã
ã©ã€ãã©ãªã䟿å©ã§ãããšèšããšãããŸã第äžã«ã䜿ããããAPIãæã£ãŠããããšãæå³ããŸãã ãããéæããæ¹æ³ã¯ïŒ
åºæ¬åå
ãããã¯ãSpeechKitã§ã®çµéšããåŠãã åŽé¢ã®äžéšã§ãã
- ãŸãããŠãŒã¶ãŒãéçºè
ã§ããããšãå¿ããªãã§ãã ãã ã
äžæ¹ã§ãæ®éã®ãŠãŒã¶ãŒã«èª¬æããªãã®ã§è¯ãã§ãããããããŸãããããã¯ãšã³ãã¯ç§ãã¡ãšäžç·ã§ãããããã£ãŠãäœãæ©èœãããç§ãã¡ã¯å€§äžå€«ã§ãïŒããããéçºè ã«èª¬æã§ããŸã-éçºè ã«ãããã説æã§ããŸãïŒ
äžæ¹ã§ãããªãã¯ééããªããã®æ©äŒãå©çšããŠç©ŽãèŠã€ããŠããããé¢ãããšäœããå£ããŠãŒã¶ãŒãç²åŸããŸãã ç§ãã¡ã¯çã©ã€ãã©ãªã䜿çšããããããæ倧éã«æŽ»çšããããšããŸãã 圌ãã¯ããã ãããã£ãŠãããšäž»åŒµããŠãããç§ãã¡ã¯èããŠããŸãããããããããã§å°ããããããããŸãããããåŒãç¶ããšããã¹ãŠãæ£åžžã«ãªããŸããã
ããã«ããŠãŒã¶ãŒãéçºè ã§ãããšããäºå®ã¯ãéçºæ¹æ³ãšãã¹ãŠãæ¹åããæ¹æ³ã«ã€ããŠãåžžã«å±±ã»ã©ã®ãã³ããšã³ããããããšãæå³ããŸãã
2çªç®ã®éèŠãªç¹ã¯ãæåã®ç¹ãšå®å šã«äžèŽããŠããŸãã
- ã©ã€ãã©ãªã§èš±å¯ãããŠããªããã®ã¯ãã¹ãŠçŠæ¢ããå¿
èŠããããŸããã
äžèŠãªæãç©Žããªãããã«ããŸãã
ãŠãŒã¶ãŒãäºæããªãã©ã€ãã©ãªã§äœããå§ããå Žåãããã¯ãã°ãããã³ãããã°ãå°é£ãªãã°ãžã®çŽæ¥ã®éã§ãã èšèªãæäŸãããã¹ãŠã®ãã®ãšäœ¿çšãããã¯ãããžãŒã䜿çšããããã«ããŠãã ããïŒpublic / privateãfinalãdeprecatedãreadonlyã ã¹ã³ãŒããçž®å°ããã¡ãœããã®ç¶æ¿ãšäœ¿çšãçŠæ¢ããå€æŽã§ããªãããããã£ã«ããŒã¯ãä»ããŸã-ã©ã€ãã©ãªãåã«èšèšãããŠããªãããšãé²ãããã«å¯èœãªãã¹ãŠãæäŸããŸãã
- ã©ã€ãã©ãªã®APIã®è§£éã«äºéã®ãããŸãããèš±ããªãã§ãã ããã
ãã®ç¹å®ã®ã¯ã©ã¹ã1ã€ã®æ¹æ³ã§äœæã§ããå Žåãä»ã®ãã¹ãŠãæåŠããŸãã ãã®ããããã£ãnullã«ã§ããªãå Žåã¯ãæ瀺çã«æå®ããŠãã ããã iOSã«ã¯ãnullå¯èœ/ null以å€ã®æå®ãããåæååããããŸããããã¯JavaãšAndroidã§ãåãã§ãã ãã®ãã¹ãŠã䜿çšããŠããŠãŒã¶ãŒããã¡ã€ã«ãéããã¯ã©ã¹ãéããç®ã§ãããå®è¡ããããã«å®è¡ã§ããããšãšå®è¡ã§ããªãããšãç解ããŸãã
Case SpeechKit API
äŸãšããŠSpeechKitã䜿çšããŠãããŒãžã§ã³2ãããŒãžã§ã³3ã«ãªãã¡ã¯ã¿ãªã³ã°ããæ¹æ³ã説æããŸããAPIãå€§å¹ ã«å€æŽããããããã¹ãŠã®ååã䜿çšããããšããŸããã
APIãè€éã§ãçè«çãã ã£ããããããŒãºãçããŸããã ãã®äžã«æåã«åŒã³åºããªããã°ãªããªãã°ããŒãã«ã³ã³ããŒãã³ãããããŸãã-åŒã³åºãããŠããŸãã-ãã¹ãŠãæ©èœããŠããŸããã§ããã éåžžã«å¥åŠãªèšå®ãèšå®ãããŸããã SpeechKitã¯ããšããšNavigatorã®äžéšã ã£ããããAPIã¯éåžžã«ãçè«çãã§ãããããã®äœåã¯ã©ã€ãã©ãªã«åã蟌ãŸããŸããã APIã¯åºæ¬çã«ãNavigatorã§äœ¿çšãããã±ãŒã¹ã§æ©èœããŸããã
åŸã ã«ãŠãŒã¶ãŒã®æ°ãå¢ããå®éã«å¿ èŠãªãã®ãã€ãŸãã¡ãœãããã³ãŒã«ããã¯ããã©ã¡ãŒã¿ãŒãç解ãå§ããŸããã 圌ãã¯ãAPIãå®è£ ãèš±å¯ããªãã£ããªã¯ãšã¹ããšãšãã«ç§ãã¡ã«æ¥ãŸããã ãããäœåºŠãç¹°ãè¿ãããAPIãéçã«éããŠããããšãæããã«ãªããŸããã ããã§ããªãã¡ã¯ã¿ãªã³ã°ã«é¢äžããŸããã
ãªãã¡ã¯ã¿ãªã³ã°ããã»ã¹ã¯é·ãïŒå幎ïŒãèŠçã§ããïŒèª°ããäžå¹žã§ããïŒ ã äž»ãªé£ç¹ã¯ã倧éã®ã³ãŒããååŸããŠæžãçŽããªãããšã§ããã åçŽã«ãªãã¡ã¯ã¿ãªã³ã°ãè¡ãããšã¯äžå¯èœã§ãããã䜿çšãããŠãããã¹ãŠã®ã¢ã¯ãã£ãããŒãžã§ã³ããµããŒãããå¿ èŠããããŸããã ãŠãŒã¶ãŒã«æ¬¡ã®ããã«èšãããšã¯ã§ããŸããããã¿ããªãã¯ããæ©èœããŸãããã¯ãããã®æ©èœãå¿ èŠã§ããããŒãžã§ã³3ã§ãã¹ãŠãè¡ããŸãã6ãæãåŸ ã¡ãã ããïŒã
ãã®çµæããªãã¡ã¯ã¿ãªã³ã°ã«ã¯é·ãæéãããããããã»ã¹ããŠãŒã¶ãŒã«ãšã£ãŠãèŠçã§ããã çµå±ãåŸæ¹äºææ§ãªãã«APIãå€æŽããããã§ãã 圌ãã¯åœŒãã«ãã£ãŠæ¥ãŠããããã«æ°ããçŸããSpeechKitããããŸããã©ãããè©Šããã ããïŒããšçããŸããã ããšãã°ã1幎以å ã«ãã®ããŒãžã§ã³ã«åãæ¿ããããŒã ããããŸããã ãã®ãããç§ãã¡ã¯äžž1幎éã以åã®ããŒãžã§ã³ããµããŒãããŸããã
ããããçµæã¯ããã ãã®äŸ¡å€ããããŸããã çµ±åãç°¡åã«ãªãããã°ãå°ãªããªããŸãã ã ããã¯ãAPIã®åºæ¬çãªèšèšååã§è¿°ã¹ããã®ã§ãã APIãæ£ãã䜿çšãããŠããããšã確å®ãªå Žåããã®éšåã«ã¯ééããªãåé¡ã¯ãããŸããããã¹ãŠã®ã¯ã©ã¹ãæ£ããåŒã³åºããããã¹ãŠã®ãã©ã¡ãŒã¿ãŒãæ£ããã§ãã ãã°ãèŠã€ããã®ãã¯ããã«ç°¡åã§ãäœãããããããªãå Žåãå°ãªããªããŸãã
以äžã¯ããªãã¡ã¯ã¿ãªã³ã°åã®èªèãæ±ãã¡ã€ã³ã¯ã©ã¹ã®æ§åã®äŸã§ãã
// SpeechKit v2 @interface YSKRecognizer: NSObject @property (nonatomic, strong, readonly, getter=getModel) NSString* model; @property (nonatomic, assign, getter=isVADEnabled) BOOL VADEnabled; - (instancetype)initWithLanguage:(NSString *)language model:(NSString *)m; - (void)start; - (void)cancel; - (void)cancelSync; @end @interface YSKInitializer: NSObject - (instancetype)init; - (void)dealloc; - (void)start; + (BOOL)isInitializationCompleted; @end extern NSString *const YSKInactiveTimeout; extern NSString *const YSKVADEnabled; @interface YSKSpeechKit: NSObject + (instancetype)sharedInstance; â (void)setParameter:(NSString *)name withValue:(NSString *)value; @end
ããã¯ãNSObjectãç¶æ¿ããéåžžã®ã¯ã©ã¹ã§ãã ããããã®è©³çŽ°ãåå¥ã«æ€èšããŸãããã NSObjectã䜿çšããŠå®è¡ã§ãããã¹ãŠã®ããšãç¶æ¿ãããã®äžã®ããã€ãã®ã¡ãœãããåå®çŸ©ã§ããããšã¯æããã§ãã
次ã«ãäœææã«2è¡ïŒèšèªãšã¢ãã«ïŒãæž¡ãããŸãã ãããã®è¡ã¯äœã§ããïŒ ãHelloãworldããšããèšèªãæž¡ããšãåºåã¯ç¿»èš³ã«ãªããŸããïŒ ããŸãæ確ã§ã¯ãããŸããã
ããã«ãããã¯NSObjectã®åŸç¶ã§ãããããinitãnewãªã©ãåŒã³åºãããšãã§ããŸãã ã©ããªãã®ïŒ ããã¯åäœããŸããããããšãããã€ãã®ãã©ã¡ãŒã¿ãåŸ ã¡ãŸããïŒ
ãã¡ããããããã®è³ªåã«å¯Ÿããçãã¯ç¥ã£ãŠããŸãããã®ã³ãŒãã¯ç¥ã£ãŠããŸãã ãããããããåããŠèŠãŠãã人ã¯ããªãããããã¹ãŠãªã®ããŸã£ããç解ããŠããŸããã setterããã³getterã䜿çšããã¡ãœããã§ãããiOSã§ã©ã®ããã«èŠãããã¯ãŸã£ãã調ã¹ãŸããã startãcancelãcancelSyncã¡ãœããïŒããã³åã«ãã£ã³ã»ã«ããã¡ãœãã-aSyncïŒïŒ-ããããäžç·ã«åŒã³åºããããšã©ããªããŸããïŒ ãã®ã³ãŒãã«å¯Ÿããå€ãã®è³ªåã
次ã«ãç§ã話ãããªããžã§ã¯ãïŒYSKInitializerïŒããããŸããããã¯ããã¹ãŠãæ©èœããããã«éå§ããå¿ èŠããããŸããããã¯äžè¬ã«äœããã®éæ³ã§ãã ãã®ã³ãŒãã¯ãiOSåãã«äœæããŠããªããC ++ã«åŸäºããŠããéçºè ã«ãã£ãŠäœæãããããšãããããŸãã
ããã«ããã®ã¬ã³ã°ãã€ã¶ãŒã®èšå®ã¯ãå¥ã®ã°ããŒãã«ãªããžã§ã¯ãã«è»¢éãããã°ããŒãã«ã³ã³ããŒãã³ããä»ããŠèšå®ãããå®éã«ã¯ãç°ãªããã©ã¡ãŒã¿ãŒã»ãããæã€2ã€ã®ç°ãªãã¬ã³ã°ãã€ã¶ãŒãäœæããããšã¯ã§ããŸããã§ããã ãããŠãããã¯ãããããAPIããµããŒãããªãã£ãæã人æ°ã®ããã±ãŒã¹ã®1ã€ã§ããã
v3ã¯v2ãããåªããŠãã
ãªãã¡ã¯ã¿ãªã³ã°ããŠããŒãžã§ã³3ã«åãæ¿ãããšãã«äœãåŸãããŸãããïŒ
- å®å
šã«ãã€ãã£ããªAPIã
iOS APIã¯iOS-APIã®ããã«ãªããAndroid APIã¯Androidã®ããã«ãªããŸããã
ããã«èªèããªãã£ãéèŠãªç¹ã¯ãã©ã€ãã©ãªã®APIã®åäžæ§ããããã©ãããã©ãŒã ã¬ã€ãã©ã€ã³ã®æ¹ãã¯ããã«éèŠã§ããããšã§ãã
ããšãã°ãAndroidéçºè ã«ãšã£ãŠéåžžã«ç解ãããããã¿ãŒã³ã§ãããããAndroidã®ã¯ã©ã¹ã¯ãã«ããŒã䜿çšããŠäœæãããŸãã iOSã§ã¯ãããã¯ããã»ã©äžè¬çã§ã¯ãªããããå¥ã®ã¢ãããŒãã䜿çšãããŸããç¹å¥ãªã¯ã©ã¹ã®èšå®ã§ãªããžã§ã¯ããäœæããŸãã
ãã®ããŒãã«ã€ããŠé·ãéè°è«ããŠããããšãèŠããŠããŸãã éçºè ãiOSãŸãã¯Androidã§ã³ãŒããååŸããããšãéèŠã§ãããšæããã99ïŒ ã«ãªããŸãã ããããããã¯ããã§ã¯ãããŸããã ããã«ãã³ãŒãã¯éçºå¯Ÿè±¡ã®ãã©ãããã©ãŒã ã«äŒŒãŠããŸãã
- ã·ã³ãã«ã§æ確ãªåæå ã
ãã®ãªããžã§ã¯ããå¿ èŠã§ã-ããã«ãã®èšå®ããããããããäœæãã転éããŸã-å©çïŒ ã€ãŸããã©ããã«è»¢éããå¿ èŠãããé ãããã°ããŒãã«èšå®ã¯ãããŸããã
- ã°ããŒãã«ã³ã³ããŒãã³ãã®äžè¶³ã
ç§ãã¡ã¯ããŠãŒã¶ãŒã ãã§ãªãããã®ã©ã€ãã©ãªèªäœã®éçºè ã®éã§ãããã¹ãŠã®äººãæ··ä¹±ãããã¿ããªãæããããå€ãã®è³ªåãåŒãèµ·ãããã°ããŒãã«ãªã³ã³ããŒãã³ããæšãŠãŸããã
ããã§ãæ°ããããŒãžã§ã³ã®åãã¯ã©ã¹ã¯æ¬¡ã®ããã«ãªããŸãïŒObjective-Cã®ãŸãŸã§ããSwiftã«åãæ¿ããããšã¯ã§ããŸããã§ããïŒã
// SpeechKit v3 NS_ASSUME_NONNULL_BEGIN __attribute__((objc_subclassing_restricted)) @interface YSKOnlineRecognizer: NSObject<YSKRecognizing> @property (nonatomic, copy, readonly) YSKOnlineRecognizerSettings *settings; - (instancetype)initWithSettings:(YSKOnlineRecognizerSettings *)s audioSource:(id<YSKAudioSource>)as NS_DESIGNATED_INITIALIZER; + (instancetype)new __attribute__((unavailable("Use designated initializer."))); - (instancetype)init __attribute__((unavailable("Use designated initializer."))); @end NS_ASSUME_NONNULL_END @protocol YSKRecognizing <NSObject> - (void)prepare; - (void)startRecording; - (void)cancel; @end @interface YSKOnlineRecognizerSettings: NSObject<NSCopying> @property (nonatomic, copy, readonly) YSKLanguage *language; @property (nonatomic, copy, readonly) YSKOnlineModel *model; @property (nonatomic, assign) BOOL enableVAD; - (instancetype)initWithLanguage:(YSKLanguage *)l model:(YSKOnlineModel *)m NS_DESIGNATED_INITIALIZER; @end @interface YSKLanguage: YSKSetting + (instancetype)russian; + (instancetype)english; @end
ããã¯NSObjectã®åŸç¶ã§ãããä»ã§ã¯ç¶æ¿ã§ããªããšããäºå®ã«ã€ããŠæ確ã«è©±ããŠããŸãã ãã®ãªããžã§ã¯ãã®ç¹åŸŽã§ãããã¹ãŠã®ã¡ãœããã¯ãç¹å¥ãªãããã³ã«ã«è»¢éãããŸãã èšå®ãšaudioSourceã䜿çšããŠäœæãããŸãã ããã§ããã¹ãŠã®èšå®ãåäžã®ãªããžã§ã¯ãã«ã«ãã»ã«åãããç¹å®ã®ã¬ã³ã°ãã€ã¶ãŒã®èšå®ãèšå®ããããã«ããã«è»¢éãããŸãã
ããã«ãããã§ã¯é³å£°ã«é¢ããäœæ¥ãåé€ããŸãããã€ãŸããèªèãšã³ãžã³ã¯é³å£°ãæžã蟌ãã³ã³ããŒãã³ãã§ã¯ãªããªããŸããã ãã®ã³ã³ããŒãã³ãã¯èªèã®åé¡ãåŠçããä»»æã®ãœãŒã¹ãããã«è»¢éã§ããŸãã
ãã®ã¯ã©ã¹ã¯ããã©ã«ãèšå®ãå¿ èŠãšãããããæ°èŠãŸãã¯åæåã«ããä»ã®äœææ¹æ³ã¯çŠæ¢ãããŠããŸãã 䜿çšããå Žåã¯ãå°ãªããšãããã€ãã®ããã©ã«ãèšå®ãäœæããŠãã ããã
äž»ãªããšã¯ãããã§è»¢éãããèšå®ã¯äžå€ã§ãããšããããšã§ããã€ãŸããããã»ã¹ã§èšå®ãå€æŽããããšã¯ã§ããŸããã ã¢ãã«ãŸãã¯èšèªã眮ãæããããã«ãäœããèªèããããšãã«è©Šãå¿ èŠã¯ãããŸããã ãããã£ãŠãæ¢ã«è»¢éãããèšå®ã§ãªããžã§ã¯ããå€æŽããæ©äŒããŠãŒã¶ãŒã«æäŸããŸããã
NS_ASSUME_NONNULL_BEGIN / NS_ASSUME_NONNULL_ENDãã¯ãã¯ããããã®èšå®ãnullã«ããããšã¯ã§ããªãããšã匷調ããããã«äœ¿çšããŸããaudioSourceãnullã«ããããšã¯ã§ããŸããã
å ã»ã©èšã£ãããã«ãstartã¡ãœãããšcancelã¡ãœããïŒcancelSyncã¯ãªããªããŸããïŒã¯å¥ã®ãããã³ã«ã«ç§»åããŸããã ã©ã€ãã©ãªã«ã¯ãã¬ã³ã°ãã€ã¶ãŒã§ã¯ãªãä»ã®ãã®ã䜿çšã§ããå ŽæããããŸãã ããšãã°ããã®ãããã³ã«ãå®è£ ããã³ã³ããŒãã³ãã転éã§ããAppleã®ãã€ãã£ãã䜿çšããŸãã
ããã§ã®èšå®ã¯NSCopyingãªã®ã§ãã³ããŒããããšãã§ããããã»ã¹ã§å€æŽããããšã¯ã§ããŸããã initã§ã¯ãå¿ é ãã©ã¡ãŒã¿ãŒã¯èšèªãã¢ãã«ãããã³NS_DESIGNATED_INITIALIZERã§ãã ããã¯éæšå¥šã®ã¡ãœãããšåäžã®ã³ãŒãã§ã¯ãããŸããããã¢ã€ãã¢ã¯æ確ã§ãã ãããã¯ãèšå®ãäœæãããå¿ é ãã©ã¡ãŒã¿ãŒã§ãã ãããã¯ãŒãã§ãªããã°ãªããŸããã
æ®ãã®ã»ããã¯ãçŽ20ã®ã¬ã³ã°ãã€ã¶ãŒã®èšå®ãããã«èšå®ãããŠããŸãã èšèªãã¢ãã«ã®èšå®ã§ãããç§ãã¡ãäœæ¥ã§ããªãæœè±¡çãªäœããäŒããããšãèš±å¯ããªãå¥åã®ã¯ã©ã¹ã§ãã ã€ãŸããç§ãã¡ã¯ã¯ã£ãããšèšããŸãã ã³ã³ãã€ã©ãŒã¯ãããèš±å¯ããŸãããã
ããã§ãAPIã§äœãã§ãããã«ã€ããŠè©±ããŸããã éçºã«ã¯ç¬èªã®ãã¥ã¢ã³ã¹ããããŸãã
éçº
ãŸã第äžã«ãã©ã€ãã©ãªã¯ããªããæžãããã®ãããã¹ãã§ã-ãã®æ©èœãããŸãå®è¡ããããã«ã ãã ããã³ãŒããéåžžã«åªããã©ã€ãã©ãªã«ããããšãã§ããŸãã SpeechKitã®éçºäžã«åéããããã€ãã®ã³ã¡ã³ããæäŸããŸãã
ã³ãŒãã¯ããªãã ãã®ãã®ã§ã¯ãããŸãã
ã©ã€ãã©ãªãåå ã§ãµãŒãã¹ãæ©èœããŠããªããšãŠãŒã¶ãŒã«èšãããããªãã®ã§ã ãããã°æ å ±ãåéããããšã¯çµ¶å¯Ÿã«å¿ èŠã§ãã
IOSã«ã¯ãåéããå¿ èŠãããæ å ±ã瀺ããããã°æ å ±ã¬ãã«ããããŸãã ããã©ã«ãã§ã¯ããã¹ãŠã®åŒã³åºãããã¹ãŠã®å€ãªã©ãæ€åºå¯èœãªãã¹ãŠã®ãã®ãå®å šã«åéããŸãã ããã¯ãã°ãããããšã§ãããéåžžã«å€§éã®ããŒã¿ã§ãã -gline-tables-onlyãèšå®ãããšãé¢æ°åŒã³åºãã«é¢ããæ å ±ãåéã§ããŸãã ããã§åé¡ãèŠã€ããŠä¿®æ£ããã«ã¯ååã§ãã
ããã¯Xcodeèšå®ïŒãã«ãèšå®ïŒã«å«ãŸããŠããããããã°æ å ±ã¬ãã«ãšåŒã°ããŸãã ããšãã°ããã®èšå®ãæå¹ã«ããããšã§ãSpeechKitãã€ããªãã¡ã€ã«ã®ãµã€ãºã600 MBãã90 MBã«åæžããŸããã ããã¯ããŸãå¿ èŠãªæ å ±ã§ã¯ãªãããã æšãŠãŸããã
2çªç®ã®éèŠãªããšã¯ã ãã©ã€ããŒããã£ã©ã¯ã¿ãŒãé ãããšã§ãã ã©ã€ãã©ãªã«iTunesãã¢ããããŒããããã³ã«ãäœããè¿œå ããã®ã§ã¯ãªããäœãééã£ãŠããããšã䜿çšããŠãããšããæ°ããèŠåã衚瀺ããããªã¹ã¯ããããŸãã ãããã£ãŠãAppleããã©ã€ããŒããšèŠãªãã©ã€ãã©ãªã䜿çšããå Žåã¯ãå¿ ãé衚瀺ã«ããŠãã ããã ããã¯ããªãã«ãšã£ãŠäœã®æå³ããããŸãããããªãã¯åœŒããšäžç·ã«ä»äºãããããšãã§ããŸããããŠãŒã¶ãŒãããªãã®ã©ã€ãã©ãªã䜿ã£ãŠã¢ããªã±ãŒã·ã§ã³ãiTunesã«ã¢ããããŒãããããšãããšããã«ãšã©ãŒãåãåããŸãã 誰ããããªãã«ãããä¿®æ£ããããã«é Œãããã§ã¯ãªããã»ãšãã©ã¯ããªãã®è§£æ±ºçã䜿ãããšãåã«æåŠããã§ãããã
æåã®ç«¶åãé¿ãã ïŒææãããã¹ãŠã®ãã®ãã¯ã©ã¹ãã«ããŽãªã«ãã¬ãã£ãã¯ã¹ãè¿œå ããŸãã ã©ã€ãã©ãªã«ã«ããŽãªUIColor + HEXãããå ŽåããŠãŒã¶ãŒãæ£ç¢ºã«åãã«ããŽãªã䜿çšããŠããããšã確èªããŠãã ãããã©ã€ãã©ãªãçµ±åãããšããã£ã©ã¯ã¿ãŒã®ç«¶åãçºçããŸãã ç¹°ãè¿ãã«ãªããŸããã誰ããããªãã«èšã£ãŠããèšããããšã¯éããŸããã
å¥ã®è³ªåã¯ãèªåãã©ã€ãã©ãªã§ãµãŒãããŒãã£ã©ã€ãã©ãªã䜿çšããå Žåã§ãã èŠããŠãã䟡å€ã®ãããã¥ã¢ã³ã¹ãããã€ããããŸãã ãŸããã©ã€ãã©ãªãããå€ãããŒãžã§ã³ã«ãããã®ã䜿çšããå Žåã¯ãå¿ ã匱ããªã³ã¯ã䜿çšããŠãã ããïŒXcode-> Build Phases-> Link Binary With Libraries-> Status is onïŒã ããã«ãããçªç¶ãã®ã©ã€ãã©ãªãèœã¡ãªãå Žåãèœã¡ãªãããã«ããããšãã§ããŸãã
Appleã®ããã¥ã¡ã³ãã«ã¯ããã®ä»çµã¿ã®è©³çŽ°ãèšèŒãããŠããŸãã ãããã匱ããªã³ã¯ã¯ãã©ã€ãã©ãªã䜿çšãããªãå Žåãã©ã€ãã©ãªãããŒããããªãããšãæå³ããŸããã ã€ãŸããã¢ããªã±ãŒã·ã§ã³ã®éå§æéããŠãŒã¶ãŒã«ãšã£ãŠéèŠã§ããããµãŒãããŒãã£ã®ã©ã€ãã©ãªã䜿çšããŠéå§ã«æéããããã©ã€ãã©ãªã®äžéšãäžèŠãªå ŽåããŠã£ãŒã¯ãªã³ã¯ã¯åœ¹ã«ç«ã¡ãŸããã ããã«ãããã©ã€ãã©ãªã¯äœ¿çšãããŠãããã©ããã«é¢ä¿ãªãããŒããããŸãã
ã©ã³ã¿ã€ã ã«ããŒãããå Žåãããã¯èµ·åæã®ãªã³ã¯ã®åé¡ãåãé€ãã®ã«åœ¹ç«ã¡ãŸãããã®åŸãdlopenãšåçããŒãã䜿çšããå¿ èŠããããŸãã ããã«ã¯å€ãã®æéãããããŸãããŸãããããçã«ããªã£ãŠãããã©ãããç解ããå¿ èŠããããŸãã Facebookã«ã¯ãåçã«ãªã³ã¯ããæ¹æ³ã®äŸãšããŠãããªãèå³æ·±ãã³ãŒãããããŸãã
æåŸã«ã å éšã§ã°ããŒãã«ãšã³ãã£ãã£ã䜿çšããªãããã«ããŠãã ãã ã åãã©ãããã©ãŒã ã«ã¯ããã€ãã®ã°ããŒãã«ã³ã³ããŒãã³ãããããŸãã ã©ã€ãã©ãªã«ãã©ãã°ããªãããšããå§ãããŸãã ããã¯ã°ããŒãã«ãªããžã§ã¯ãã§ãããã©ã€ãã©ãªãŠãŒã¶ãŒã¯ããã䜿çšããŠå¥œããªããã«æ§æã§ãããããããã¯æãããªããã§ãã ã©ã€ãã©ãªã§äœ¿çšããå Žåãäœããã®æ¹æ³ã§ãã®ç¶æ ãä¿åããåæ§æããŠããç¶æ ã埩å ããå¿ èŠããããŸãã å€ãã®ãã¥ã¢ã³ã¹ããããééããç¯ãå ŽæããããŸãã ãããèŠããŠãé¿ããŠãã ããã
ããšãã°ãSpeechKitã§ã¯ã3çªç®ã®ããŒãžã§ã³ã®åã«ãã©ã€ãã©ãªå ã§ãªãŒãã£ãªãæäœãããªãŒãã£ãªã»ãã·ã§ã³ãæ瀺çã«èšå®ããã³ã¢ã¯ãã£ãåããŸããã iOSã§ã®ãªãŒãã£ãªã»ãã·ã§ã³ã¯ããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãæã£ãŠãããã®ã§ããæã£ãŠããªããšèšã£ãŠã¯ãããŸããã éå§æã«äœæãããã¢ããªã±ãŒã·ã§ã³ãšã·ã¹ãã ã¡ãã£ã¢ããŒã¢ã³ã®çžäºäœçšãæ åœããã¢ããªã±ãŒã·ã§ã³ããªãŒãã£ãªã§äœããããããäŒããŸãã ããã¯ãåèªã®çã®æå³ã§ã®ã·ã³ã°ã«ãã³ãªããžã§ã¯ãã§ãã ç§ãã¡ã¯èœã¡çããŠãããå¿ èŠã«å¿ããŠèšå®ããŸããããããã¯ãŠãŒã¶ãŒã«é³éã®å€æŽãªã©ã®å°ããªåé¡ããããšããäºå®ã«ã€ãªãããŸããã èšå®ã®èšå®ãæ åœãããªãŒãã£ãªã»ãã·ã§ã³ã®ãã1ã€ã®æ¹æ³ã¯ãéåžžã«é·ãæ¹æ³ã§ãã çŽ200ããªç§ããããŸããããã¯ãã¢ã¯ãã£ãåãŸãã¯éã¢ã¯ãã£ãåã®é¡èãªäœäžã§ãã
3çªç®ã®ããŒãžã§ã³ã§ã¯ãã©ã€ãã©ãªãããªãŒãã£ãªã»ãã·ã§ã³ãåŒãåºããŸããã ãã®åŸãSpeechKitãçµ±åããããã¹ãŠã®ãµãŒãã¹ã®ã»ãšãã©ãã¹ãŠã®ãŠãŒã¶ãŒã¯ãéåžžã«äžå¹žã ãšèšããŸããã ããã§ãSpeechKitçšã«ç¹å¥ã«èšå®ããå¿ èŠã®ããçš®é¡ã®ãªãŒãã£ãªã»ãã·ã§ã³ãããããšãç解ããã¯ãã§ãã
ããã«ããçµè«ã¯æ¬¡ã®ãšããã§ãããã¹ãŠåãããã«ãã°ããŒãã«ãšã³ãã£ãã£ã䜿çšããªãããã«ããŸããããŠãŒã¶ãŒãåžžã«æ±ºå®ã«æºè¶³ãããšã¯éããªããšããäºå®ã«åããŠãã ããã
ãŠãŒã¶ãŒã«ãšã£ãŠäŸ¿å©ãªãã®ã«ããŸã
ä»ã«ã©ã®ããã«ãŠãŒã¶ãŒãæ¯æŽã§ããŸããïŒ
- ãã°ã®è¿œå ïŒããŸããŸãªã¬ãã«ãåçãªå
å« ã
æãç°¡åãªæ¹æ³ã¯ããã¡ã€ã«ãæ·»ä»ããããšã§ãããã¡ã€ã«ããããšãã¡ã¬ãããã°ã¢ãŒããèµ·åããŸãã ãŠãŒã¶ãŒã«ãšã©ãŒã®ãããŠãŒã¶ãŒãããŠãæ£ç¢ºã«äœãèµ·ãã£ãã®ããç解ããå¿ èŠãããç¶æ³ã§ãããã°ãè¡ãããšã¯æ¬åœã«åœ¹ç«ã¡ãŸãã
- ãã¹ãŠã®ãŠãŒã¶ãŒOSããŒãžã§ã³ããµããŒãããŸãã
ã©ã€ãã©ãªã§ã®ããŒãžã§ã³ãµããŒãã«ã€ããŠè©±ããšããããã¯éåžžã®ã¢ããªã±ãŒã·ã§ã³ã§ã®ããŒãžã§ã³ãµããŒããšåãã§ã¯ãªãããšã«æ³šæããŠãã ããã éåžžã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããšãã°ããŠãŒã¶ãŒã®2ïŒ ã®ã¿ãiOS 8ã䜿çšããiOS 8ã®ãµããŒããåæ¢ã§ããããšãæå³ããçµ±èšã調ã¹ãŸããããã¯ã©ã€ãã©ãªãŒã«ã¯åœãŠã¯ãŸããŸãããããã§ã¯ãOSããŒãžã§ã³ãæŸæ£ãããšããŠãŒã¶ãŒãšãã¹ãŠã®ãŠãŒã¶ãŒãå®å šã«æŸæ£ãããŸãã ããã¯ååãšããŠãŠãŒã¶ãŒã®ååãããããŸããã
ãããã£ãŠãã©ã€ãã©ãªã䜿çšããã¢ããªã±ãŒã·ã§ã³ãã©ã®ããŒãžã§ã³ã䜿çšããŠããããç£èŠããå¿ èŠããããããã«åºã¥ããŠãäœãããµããŒããããã©ããããã§ã«çµè«ä»ããŠããŸãã ç§ãã¡ã¯iOS 7ãé·ãéæŸæ£ããŸããã§ãããiOS8ãæŸæ£ããiOS 9ãæŸæ£ããæºåãã§ããŠãã人ãæ¢ã«ããããã§ãããããŠç§ãã¡ã¯åœŒãšå¯æ¥ã«ååãããã®ãããªç¶æ³ã«åœŒãæ®ãããšã¯ã§ããŸããã§ããã
ç¹°ãè¿ãã«ãªããŸããããŠãŒã¶ãŒã¯ããµããŒãããŠããªãããŒãžã§ã³ã§ãã®æ©èœããªãã«ããŸãããããšã¯èšããŸãããããããåã«ã©ã€ãã©ãªãåé€ããäžé£ã®ããŒãžã§ã³å šäœããµããŒãããã©ã€ãã©ãªãèŠã€ããŸãã
- æ°ããããŒãžã§ã³ã§æå°å¢åãè¿œå ããŸãã
ããã¯ã©ã€ãã©ãªéçºè ã«ãšã£ãŠéåžžã«ãããã»ã©ã§ã¯ãªããã§ãã ãªãªãŒã¹ã®æºåãã§ããŠãããã¹ãŠã®ãã®ããªãªãŒã¹ãããã æ©èœãäœæãããã°ãä¿®æ£ããŸããã次ã«ããã±ããå šäœãå ¥ããŠãªãªãŒã¹ã«ããŒã«ã¢ãŠãããŸãã ãªãªãŒã¹ãããã»ã¹ã§ãã ããã¯ãŠãŒã¶ãŒã«ãšã£ãŠã¯ããã§ã¯ãããŸããã 補åã®ãã¹ããšãªãªãŒã¹ã®æºåãè¡ã£ãŠãããšããè¿œå ã®ãã¹ããå¿ èŠãªæ°æ©èœãåããã¢ã»ã³ããªãåãåããããããŸããã
ããã€ãã®ãªãªãŒã¹ãããŒã«ããã¯ããããããããŒãã«åå²ãããã§ã«ãã©ãã©ã«å±éããŠããã±ãŒã¹ãæ¬åœã«ãããŸããã ãã®åŸãå€æŽãå®è£ ããããŒã ã¯ãäžåºŠã«ãã¹ãŠã§ã¯ãªããå°ããªå€æŽãããããŒãžã§ã³ãæ£ç¢ºã«äœ¿çšã§ããŸãã
ããã¯å®éã«ã¯éçºã«ã¯ããŸã䟿å©ã§ã¯ãããŸããããããŒãžã§ã³ã®æå°ã®å¢åã«ããããŠãŒã¶ãŒã¯å°ã幞ãã«ãªããŸãã
å€ãã®ãã¹ãã¯ãããŸãã
ããã¯ãéåžžã®ã¢ããªã±ãŒã·ã§ã³ãšã©ã€ãã©ãªã®äž¡æ¹ã«åœãŠã¯ãŸããŸãã ããããã©ã€ãã©ãªã®å Žåãæ©èœããããŸãã

ãã¡ããã èªåãã¹ããå¿ èŠã§ããããããã«å ããŠãã©ã€ãã©ãªçšã®ãã¹ãã¢ããªã±ãŒã·ã§ã³ãããããšã¯çŽ æŽãããããšã§ãã èªåã§æžãããã®ãçµ±åããã©ã®ãããªåé¡ãèœãšãç©Žãçããããç解ããã®ã«åœ¹ç«ã¡ãŸãã ãŠãŒã¶ãŒãäœã§ããããèªåã§æããããšãã§ããŸãã
ã©ã€ãã©ãªãäœããã®æ¹æ³ã§ãããã¯ãŒã¯ãšçžäºäœçšããæå·åãå«ãå Žåãå°ãªããšãããŒã¿ãšã»ãã¥ãªãã£ã«é¢é£ãããã®ãããã æ€èšŒã®ããã«ã»ãã¥ãªãã£ã¬ãŒãã«æž¡ããŠãã ããã ããªãã¯çµ¶å¯Ÿã«è匱æ§ãèŠã€ãã£ãã©ã€ãã©ãªã«ãªããããããŸãã-ããã¯äººçã®æ±åã§ãã ã»ãšãã©ãã¹ãŠã®å€§äŒæ¥ã«ã¯ã補åã®å®å šæ§ã®ãã§ãã¯ãæ±ãéšéå šäœããããŸãã æã£ãŠããªãå Žåã¯ãå€éšç£æ»ããããŸãã å€éšã«äœè£ããªãå Žåã¯ããããã¯ãŒã¯ã§ãã¹ããèŠã€ããŠå®è¡ããã©ã€ãã©ãªããŠãŒã¶ãŒããŒã¿ã®æŒæŽ©ãèš±å¯ããŠããªãããšã確èªããŠãã ããã
ãã¹ãã§éåžžã«éèŠãªæåŸã®ããšã¯ãæéãæ¶è²»é»åãç¹å®ã®ã©ã€ãã©ãªã«å žåçãªãã¹ãŠãªã©ã å¯èœãªãã¹ãŠã®æž¬å®å€ãæåããè¿œå ããããšããããšã§ã ã æçµçã«ã¯ãããè¡ãå¿ èŠããããŸãã®ã§ãæåãã枬å®ã«ã€ããŠèããŠã¿ãŠãã ããã
ããã¯ãå€æŽã«å¯Ÿããä¿è·ãã©ã€ãã©ãªã®é«éåã®å¿ èŠæ§ããä¿è·ãããã®ã§ã¯ãããŸããããäœãééã£ãŠããããææ¡ããã®ã«åœ¹ç«ã¡ãŸãã ã°ã©ããããå Žåãããã¯ãã©ã®æ©èœãæéé 延ãè¿œå ãããããŸãã¯æ¶è²»é»åãå¢å ãããããªã¢ã«ã¿ã€ã ã§ç£èŠããã®ã«åœ¹ç«ã¡ãŸãã
ããã¯ã©ã€ãã©ãªã®æ©èœã§ã¯ãªãããããããè¡ãæéã¯ã»ãšãã©ãããŸãããããã¯ããªããéçºããããã®ãã®ã§ã¯ãããŸããã ããããããã¯ãè¯å¥œãªç¶æ ãšå質ã§ãããç¶æããã®ã«åœ¹ç«ã¡ãŸãã
ããã§ã¯ãYandexã§ã¢ãã€ã«ããã€ã¹ã®ãšãã«ã®ãŒæ¶è²»éã枬å®ããæ¹æ³ãèªãããšãã§ããŸãã æé枬å®ã«ã€ããŠã¯é¢çœã話ã§ããã ã©ã€ãã©ãªéçºè ãšããŠããã¹ãŠã®ããŒã ããã¹ãŠã®SpeechKitã¹ã¯ãªããã䜿çšããããã§ã¯ãªããããç¹å®ã®å Žåã®åäœã枬å®ããããšã¯å°é£ã§ãã æéãŸã§ã¯ããã¹ãã¢ããªã±ãŒã·ã§ã³ã䜿çšããŸããã é³å£°åæçšã®ã¬ã³ã°ãã€ã¶ãŒãŸãã¯ã³ã³ããŒãã³ããªã©ã®ç¹æ®ãªäœ¿çšäŸãèšè¿°ããããã°ãèšé²ãããŠãã¹ãŠã®ã¹ããããä¿åããããã®çµæãã¯ãŒã«ãªã°ã©ãã£ãã¯ãäœæãããŸããã
ãã¹ãŠã¯åé¡ãããŸãããããªãŒãã£ãªãæäœãããã¹ãŠããã§ãã¯ããããã«ãç¹å®ã®ã±ãŒã¹ã§ã¯ãªãŒãã£ãªãã©ãã¯ãå®éã«åçãããŸãã ããã«ãå€ãã®æž¬å®ãè¡ãå¿ èŠãããããã圌ãã¯ãã¹ããå€ã«æ®ããŸãããã¹ããŒã«ãŒãé 眮ããäœããã®ããã€ã¹ãè¿ãã«é 眮ãããªãŒãã£ãªãã¡ã€ã«ãéå§ããŸããã æããã¹ãŠããªãã«ãªããç¿å€ããããç¹°ãè¿ããããã®åŸåã³ç¹°ãè¿ãããŸããã ãªãã£ã¹ãæ©ãåã£ãã®ã¯éæ³ã®çãç©ã§ã¯ãããŸããã§ãã-ã¯ãªãŒããŒã ããæãã£ãã§ãã æã ãéåžžã«å¥åŠãªããã¹ããæã èªãŸããŠããŸããã
ãã®çµæãããŒã«ã«ãã¹ããã³ããäœæããããšã«ãªããŸãããããããã£ãããããšåŒã³ãŸãã ããã¯èªç¶ãªãã£ããããã§ãé²é³ã®ã¿ãæœãããŠããŸãã å€ãã®ããã€ã¹ãå«ãŸããŠããããã¡ãŒã å šäœã«ããã€ã¹ããããŸããåããã€ã¹ã¯ã誰ãå·ã€ããªããããå°±æ¥æ¥ã«äœåºŠãèµ·åã§ããŸãã
æã¡äžã
æåŸã«ãæåŸã®éèŠãªéšåã«æ¥ãŸã-ãããçºå£²ã§ãã ã³ãŒããäœæãããåªããAPIããŠãŒã¶ãŒã«ãšã£ãŠäŸ¿å©ã«ãªãããã«èšèšãããŠããŸãã ããããã¹ãŠãªãªãŒã¹ã«ãªãªãŒã¹ããæ¹æ³ã
Yandexå ã®ãŠãŒã¶ãŒåãã®ããŒã«ã«ãªãªãŒã¹ããå§ããŸãã ããã§ã®ã¹ããŒã ã¯ãéåžžã®ã¢ããªã±ãŒã·ã§ã³ã®éçºãšåãã§ãïŒéåžžãæ次ããŸãã¯é±æ¬¡ãªãªãŒã¹ã

ãã®ããã»ã¹ã¯éåžžã®æ®µéã§æ§æãããŠããŸãããã©ã€ãã©ãªãéçºããå Žåããããã®åãã€ã³ãã«ã¯ç¬èªã®ç¹æ§ããããŸãã
èšç»äž
ã©ã€ãã©ãªã«ã¯ããã€ãã®è£œåããŒã ããããããç§ã«ãšã£ãŠããã¯æãèŠçãªéšåã§ãã éåžžã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯ãããŒã ãåªå é äœãä»ããŠã¿ã¹ã¯ãèšå®ããäžåºŠã«1ã€ã®ã¿ã¹ã¯ãéå§ãããããã¯ããããŒãžã£ãŒã1人ããŸãã
è€æ°ã®è£œåããŒã ãããå ŽåãåããŒã ã¯ãªã¢ã«ã¿ã€ã ã§åŠçããå¿ èŠããããªã¯ãšã¹ããåãåããŸãã ç§ã¯ã¢ããã€ã¹ãããŸãïŒããã«æ¥ãå€æ°ã®ã¿ã¹ã¯ã«å¯ŸåŠããæ¹æ³ãç¥ã£ãŠãã人ããããªããããªãã®ããŒã ã§åœŒãæŸã£ãŠã¿ãŠãã ããã ãã¹ãŠã®å€éšãããŒãžã£ãŒãšéçºè ã®éã«èª°ããå¿ èŠã ããã§ã-ã¿ã¹ã¯ã®åªå é äœä»ãã®ããã®æ©èœãåŒãåãã人ã
SpeechKit , , , . , , - . , â . , n . , . , , - .
éçº
, , : , , . Agile- .
, , , â . , . !
Scrum . , , , . . « », .
Scrum , , , â â , . . â , - . , ? , : «, , , ». , , - , , Scrum . ! , .
. , , . , . , , , , . , . .
, â , - . , , , , . , . : « 4, 3 â ». , . - , , , , .
â . Continuous Integration , , , .
, . .
1. .
â . - - , , , . .
. , â , , , , . , , - .
2. .
, , , â , , , , , !
. , . , , -, .
â . SpeechKit . , , â , - . â , - .
, . , 4 2, , . , -, , .
â . , , , .
. .
, -, . . , , , help , .

. : -, GitHub, , . â , â . , , .
, , - , , ..
, , :
- . , . - , , .
- . , . , OpenSource , , , , .
- . , . , , . . SpeechKit .
ãŸãšã
- , API.
- , , .
- .
- , - :) - , .
Yandex.SpeachKit GitHub iOS , Android , Mobile SDK.
AppsConf â â 22 23 2019 , , .
. , , .