Save 37% off PRO during our Black Friday Sale! »

音声ファイルからGoogle Homeや、Google Assistant アプリのテストを自動実行してみる。

音声ファイルからGoogle Homeや、Google Assistant アプリのテストを自動実行してみる。

2f9456d19df4234fa28dc1a3ec78c9ec?s=128

masa_charcoal (masachaco)

April 18, 2019
Tweet

Transcript

  1. Ի੠ϑΝΠϧ͔Β Google Home ΍ɺ Google Assistant ΞϓϦͷɺ ςετΛࣗಈ࣮ߦͯ͠ΈΔɻ

  2. ࣗݾ঺հ HN:·ͪ͞Ό͜ • ۂͱ͔࡞ΔϓϩάϥϚ ܥ SIer • Java / nodejs

    / terraform ͳͲͳͲ • αʔόαΠυΞϓϦɺεϚʔτεϐʔΧʔΞϓϦͷ։ൃ • ٶͪΌΜͷসإۦಈ։ൃ • TwitterͰϛΫ͞ΜୡͷۂΛެ։தʂ • Twitter • @masachaco • GitHub • https://github.com/masachaco • SoundCloud • https://soundcloud.com/masa_charcoal • niconico • https://www.nicovideo.jp/mylist/11613193
  3. εϚʔτεϐʔΧʔ ศརͰ͢ΑͶ

  4. ศར ੠͚ͩͰૢ࡞Ͱ͖Δ ख͕࢖͑ͳ͍࣌ʹɺಛʹศར • ேɺ͓෩࿊্͕Γʹ൅Λ১͖ͭͭʮࠓԿ࣌ʁʯ • ͓෍ஂ͔ΒిؾɾΤΞίϯফͯ͠( ˘ω˘)ţźō • खΛಈ͔ͨ͠··ɺradiko͚ͭͨΓ

    • Amazon Music࠶ੜͨ͠Γ
  5. Assistant ΞϓϦͷ࢓૊Έ(Ұྫ) 0, (PPHMFɺ ʮٶͪΌΜ͔Θ͍͍ʯ ͬͯΞϓϦ Λ։͍ͯ

  6. Assistant ΞϓϦͷ࢓૊Έ(Ұྫ) ͜ͷਓ͜Μͳ͜ͱ ݴͬͯΔΜ͚ͩͲ

  7. Assistant ΞϓϦͷ࢓૊Έ(Ұྫ) ʮٶͪΌΜ͔Θ͍͍Λ։͍ͯʯ ͩͬͯʂ

  8. Assistant ΞϓϦͷ࢓૊Έ(Ұྫ) ʮٶͪΌΜ͔Θ͍͍ʯ ͕ىಈͨ࣌͠ͷॲཧΛ࣮ߦͯ͠

  9. Assistant ΞϓϦͷ࢓૊Έ(Ұྫ) ʮٶͪΌΜ͔Θ͍͍ʯ ͕ىಈͨ࣌͠͸ εϐʔΧʔ͸ ʮٶͪΌΜ͔Θ͍͍ʂʯ ͱݴͬͯʂ

  10. Assistant ΞϓϦͷ࢓૊Έ(Ұྫ) ʮٶͪΌΜ͔Θ͍͍ʂʯ

  11. Assistant ΞϓϦͷ࢓૊Έ(Ұྫ) ʮ΍ͬͨʔʔʔʔʔʔʔʔʂʯ

  12. Assistant ΞϓϦͷ࢓૊Έ(Ұྫ) ʮ΍ͬͨʔʔʔʔʔʔʔʔʂʯ

  13. Assistant ΞϓϦͷ࢓૊Έ(Ұྫ) ʮ΍ͬͨʔʔʔʔʔʔʔʔʂʯ

  14. ςετΛͯ͠Έ͍ͨ

  15. ςετΛͯ͠Έ͍ͨ(αʔόଆ) ʮٶͪΌΜ͔Θ͍͍ ͬͯΞϓϦ ͕ىಈͨ࣌͠ͷॲཧΛ࣮ߦͯ͠ʯ ͬͯݴΘΕͨΒ ʮٶͪΌΜ͔Θ͍͍ʂʂʯ ͬͯεϐʔΧʔ͕ݴ͏Α͏ʹࢦࣔͨ͜͠ͱΛ֬ೝ͢Δɻ +6OJU KFTU

  16. ςετͮ͠Β͍ॴ

  17. ςετͮ͠Β͍ॴ ͜ͷԫ৭͍ͱ͜ΖΒ΁Μ͕ ςετͮ͠Β͍

  18. ςετͮ͠Β͍ॴ • Ի੠Λೝࣝ͢Δॴ(AoG)͸೔ʑมԽ͢Δ
 • ೖྗ͞ΕͨจݴΛೝࣝ͢Δॴ΋೔ʑมԽ͢Δ

  19. ςετͮ͠Β͍ॴ • Ի੠Λೝࣝ͢Δॴ(AoG)͸೔ʑมԽ͢Δ
 • ೖྗ͞ΕͨจݴΛೝࣝ͢Δॴ΋೔ʑมԽ͢Δ Ի੠Λೝࣝͯ͠ɺ ςΩετʹม׵͢Δॴ

  20. ςετͮ͠Β͍ॴ • Ի੠Λೝࣝ͢Δॴ(AoG)͸೔ʑมԽ͢Δ
 • ೖྗ͞ΕͨจݴΛೝࣝ͢Δॴ΋೔ʑมԽ͢Δ ೖྗ͞ΕͨจݴΛೝࣝͯ͠ɺ αʔό΁ͷϦΫΤετʹม׵͢Δॴ

  21. ςετ͢ΔϑϨʔϜϫʔΫ͕͋Δ

  22. ͘͠Έ ύιίϯͷதͰ
 (PPHMF"TTJTUBOU Λ্ཱͪ͛ͯ ςΩετͷ ϦΫΤετΛૹΔ

  23. Ի੠Λૹ৴ͯ͠ ϦΫΤετ ͍ͯ͠ΔΘ͚Ͱ͸ͳ͍

  24. Actions on Google Testing LibraryͷࠔΔॴ • ςΩετܗࣜͷϦΫΤετͳͷͰɺ
 Ի੠ೝࣝ͸͠ͳ͍ɻ
 • ͳͷͰςΩετͰ͸OKͰ΋ɺൃ࿩ͯ͠ΈΔͱɺ


    μϝͳ͜ͱ͕͋Δɻ • ྫɿʮOk Google, ؋͜Εͷൺӥ͞Μʹ͍ͭͯڭ͑ͯʯ • → ʮ͸͍ɺൺӥࢁʹ͍ͭͯɻɻɻɻʯ
  25. Ի੠ͷೝࣝ෦෼͸ ೔ʑมԽ͠ ϒϥοΫϘοΫε

  26. ςετͱ·Ͱ͸͍͔ͳͯ͘΋ ೔࣍Ͱɺ૝ఆ͍ͯ͠Δൃ࿩Λ ਖ਼͘͠ೝࣝͰ͖͍ͯΔ͔؂ࢹ͍ͨ͠

  27. ͳͷͰ࡞Δ

  28. Ի੠ೝ͔ࣝΒςετͰ͖Δ ϑϨʔϜϫʔΫΛ࡞Δ • جຊతͳ࢓૊Έ͸ɺલड़ͷϑϨʔϜϫʔΫͱಉ ͡(PC্ͰAssistantΛىಈͯ͠ϦΫΤετ) • ϦΫΤετʹwavϑΝΠϧΛࢦఆͰ͖ΔΑ͏ʹ
 ͯ͠ɺԻ੠Λೝࣝͤͯ͞ϦΫΤετ͢Δ • nodejs͔Β࣮ߦͰ͖ΔΑ͏ʹ͢Δ

  29. Assistant SDK • Google AssistantΛར༻͢ΔΫϥΠΞϯτΛ࡞ ੒͢ΔͨΊͷSDK • ຊདྷ͸εϚʔτεϐʔΧʔͱ͔Λ࡞Δ৔߹ʹɺ ૊ΈࠐΈ޲͚Ͱ࢖͏

  30. υΩϡϝϯτΛಡΜͰΈΔ

  31. υΩϡϝϯτΛಡΜͰΈΔ ͍͍͔ΒαϯϓϧίʔυΛಡΊɻ ࿩͸ͦΕ͔Βͩ ͱ͍͏ڧ͍ҙࢤ

  32. αϯϓϧίʔυΛಡΜͰΈΔ

  33. nodejs൛ͷαϯϓϧ΋͋Δ

  34. ΄΅ɺॻ͍ͨ͜ͱͳ͍͚Ͳ Pythonಡ΋͏

  35. PythonͷίʔυͰΘ͔ͬͨ͜ͱ • nodejs൛ʹൺ΂͍ͯͩͿॆ࣮࣮ͨ͠૷͕͞Εͯ ͍Δ • ςΩετ͔ΒͷϦΫΤετ • ϚΠΫ͔ΒͷϦΫΤετ • Ի੠ϑΝΠϧ͔ΒͷϦΫΤετ

    • ϨεϙϯεͷεϐʔΧʔग़ྗ • ϨεϙϯεͷԻ੠ϑΝΠϧग़ྗ • ͳͲͳͲ
  36. PythonͷίʔυͰΘ͔ͬͨ͜ͱ • Assistantͷαʔόͱͷ௨৴͸gRPCͰߦ͏ɻ • ·ͣɺೝূ΍ΒͳΜ΍Βͨ͠ޙ
 ௨ৗςΩετΫΤϦΛૹΔ࣌ͷઃఆʹՃ͑ͯɺ ʮAudioInConfigʯΛઃఆ͢Δ • ʲઃఆ಺༰ʳ •

    ૹΔΦʔσΟΦͷαϯϓϦϯάϨʔτ • ϑΥʔϚοτ
  37. PythonͷίʔυͰΘ͔ͬͨ͜ͱ • AudioInConfigΛઃఆͯ͠ɺͦͷઃఆ಺༰ΛૹΔɻ
 • ͦͷޙɺΦʔσΟΦͷόΠτྻΛૹΔɻ
 • Google ͕
 ʮΦοέʔɺԻ੠͕ԿݴͬͯΔ͔׬શʹཧղͨ͠ʯ
 ঢ়ଶʹͳΔͱɺʮEND_OF_UTTERANCEʯ


    ͷίʔυ͕ૹΒΕɺൃ࿩ʹରͯ͠Ϩεϙϯεͯ͘͠Δɻ
  38. PythonͷίʔυΛ nodejsͷ αϯϓϧίʔυʹҠ২ ͯ͠ΈΔ

  39. ͏·͘ಈ͔ͳ͍

  40. ͏·͘ಈ͔ͳ͔ͬͨॴ • AudioInConfigͷઃఆΛͯ͠ૹ͔ͬͯΒɺ
 Google͔ΒϨεϙϯε͕͋Δ·Ͱ
 AudioΛૹͬͯ͸μϝ • AudioInConfigʹର͢ΔϨεϙϯε͕͋ͬͯ ͔ΒૹΔɻ

  41. ͏·͘ಈ͔ͳ͔ͬͨॴ2 • ΦʔσΟΦͷόΠτྻ͸Ұؾʹૹͬͯ͸μϝ • Pythonͷίʔυͩͱ3.2KBͣͭ͘Β͍ • Ҡ২൛΋ಉ༷ʹ3.2KBͣͭ͘Β͍ૹΔ

  42. ͏·͘ಈ͔ͳ͔ͬͨॴ3 • ΦʔσΟΦ͸ʮϞϊϥϧʯͰ͋Δ͜ͱ • ࿥Իͯ͠Δ࣌ʹ
 ʮϞϊϚΠΫ͔ͩΒϞϊϥϧͰ࿥Ի͞ΕͯΔͰ͠ΐʯ
 ͱࢥ͍ࠐΜͰ͍ͨɻ ͹ͬͪΓεςϨΦͩͬͨ

  43. ͠͹Βͯ͘͠

  44. Ͱ͖ͨ

  45. σϞͯ͠ΈΔ

  46. σϞ༻ΞϓϦ • ʮٶͪΌΜ͔Θ͍͍ʹͭͳ͍Ͱʯͱݴ͏ • ʮ͸͍ɺٶͪΌΜ͔Θ͍͍ͷςετόʔδϣϯͰ͢ɻʯ
 ʮٶͪΌΜ͔Θ͍͍ɻʯͱฦ͞ΕΔɻ • ʮ΍ͬͨʔʔʔʔʔʔʂʯͱݴ͏ɻ • ʮ΍ͬͨʔʔʔʔʔʔʂʯͱฦ͞ΕΔɻ

    • ʮऴྃɻʯͱݴ͏ • ΞϓϦ͕ऴྃ͢Δɻ
  47. Ի੠͕૝ఆ௨Γೝ͍ࣝͯ͠Δ͔ ςετ͢ΔͨΊʹ • Ի੠ͷೝࣝ݁Ռ͕ɺ
 ʮ͋Β͔͡Ί༻ҙͨ͠ςΩετͱҰக͢Δ͔ʯ
 ͱ͍ͬͨςετʹ͢Δͷ͸एׯແ๳ɻ
 • ൃ࿩ೝࣝ͸༳ΕΔͷͰ༻ҙ͢ΔςΩετ͕๲େ • ʮϥδίΛ͚ͭͯʯ

    • ʮradikoΛ͚ͭͯʯ • ʮradiko(εϖʔε)Λ͚ͭͯʯ
  48. Dialogflow΁ͷ
 ϦΫΤετ݁Ռͱಥ͖߹ΘͤΔ • Dialogflow͕αʔόʹϦΫΤετΛૹΔछྨ͸
 ʮΠϯςϯτʯ͝ͱʹఆٛ͞Ε͍ͯΔɻ
 (ޠฐ͕͋Γ·͕͢)
 • ͳͷͰɺൃ࿩ͨ݁͠Ռ͕ɺ໨తͷΠϯςϯτͷ
 ࣮ߦ͢Δ͜ͱʹղऍ͞Ε͍ͯΔ͔ݕূ͢Δɻ

  49. ςετίʔυ

  50. ·ͱΊ • Ի੠ͰɺGoogle Assistant͕૝ఆ௨ΓͷڍಈΛ͢Δ͔ςετͰ͖ ͨɻ
 • ͨͩɺೝࣝ͸༳ΕΔͷͰɺςετͱ͍͏ΑΓೝ͕ࣝมΘͬͯΞϓ Ϧ͕ಈ͔ͳ͘ͳͬͨ࣌޲͚ͷ؂ࢹʹ͍ۙɻ • લ͸ೝࣝͯͨ͠ͷʹɺٸʹಈ͔ͳ͘ͳͬͨʙʙʙʂʹૣ͘ؾ͚ͮ

    ͦ͏ɻ • ϦάϨογϣϯςετͱָ͔͕ʹͳΓͦ͏
 • εϚʔτεϐʔΧʔָ͍͠ɻ։ൃָ͍͠ɻٶͪΌΜ͔Θ͍͍ɻ
  51. ҎԼͷURLͰϥΠϒϥϦԽͯ͠ެ։༧ఆ • https://github.com/masachaco/google-assistant-test-from-wavefile

  52. ͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ

  53. ؾʹͳͬͯͨͱ͜Ζͱ݁Ռ • wavϑΝΠϧͷσʔλΛૹ৴͢Δ࣌ • ConfigͱΦʔσΟΦ͸Ұॹʹૹ͍͍ͬͯͷʁ • μϝɻConfigૹ͔ͬͯΒɺΦʔσΟΦ • wavͷϔομͱ͔΋ؚΊͯૹͬͯ΋େৎ෉ʁ •

    ҰԠେৎ෉ɺೝࣝͷϊΠζʹ͸ͳͬͯΔ͔΋ • ΦʔσΟΦσʔλͷૹ৴ִؒ͸ʁ • ެࣜʹ͸ʮϦΞϧλΠϜʹૹ৴͍ͯ͠ΔΑ͏ʹૹΕʯ
 ͱॻ͍ͯ͋Δɻ • ࣮ࡍ͸ɺ݁ߏ஗͍ײ֮Ͱૹͬͯ΋େৎ෉ɻγϏΞ͡Όͳ͍ɻ
  54. ໘ന͔ͬͨͱ͜Ζ • wavϑΝΠϧͷσʔλΛૹ৴͢Δ࣌ • wavϑΝΠϧΛૹΓ੾ͬͯ΋ɺ
 0ຒΊͨ͠όΠτྻΛૹΓ͚ͭͮΔඞཁ͕͋Δɻ • Assistant͸ʮແԻʯ͕ଓ͍ͯʮൃ࿩్͕੾Εͨʯͱ൑அ ͢ΔͨΊ •

    ʮແԻʯͷόΠτྻ͕ͳ͍ͱɺͣͬͱ଴ͪଓ͚Δɻ