Upgrade to Pro — share decks privately, control downloads, hide ads and more …

全部iOSにしゃべらせちゃえ! / iOSDC 2018 LT

473b12ebcfb79adfaef97796e94fc25c?s=47 Hiron
September 02, 2018

全部iOSにしゃべらせちゃえ! / iOSDC 2018 LT

iOSDC Japan 2018でiOSが話したスライドです。

スライド中の外部資料へのリンクは https://gist.github.com/hironytic/eb4174f4a44f04dddc7e066a3bae7cb7 にもまとめてあります。

473b12ebcfb79adfaef97796e94fc25c?s=128

Hiron

September 02, 2018
Tweet

Transcript

  1. 全部 iOS に しゃべらせちゃえ! iOSDC Japan 2018 LT
 2018/09/02

  2. CfPに応募したプロポーザル ͍͚ͬͳʔ͍τʔΫτʔΫࢲɺͻΖΜɻࠓ೥΋iOSDCͷLT ʹԠืͨ͠ͷ✨Ͱ΋iOSDC͸ڝٕLTΦʔσΟΤϯε΋͍ͬͺ͍ ͍Δ͔Βۓுͯ͠͠Ό΂Εͳ͍Αʔ͋ɺͦ͏ͩ AVSpeechSynthesizerͪΌΜͱPDF Kit͘ΜʹཔΊ͹ɺ୅ΘΓʹ ൃදͯ͘͠ΕΔΜ͡Όͳ͍ʁࢲ͋ͬͨ·͍͍ʔ…ͬͯຊ౰ʹ࠾ ୒͞ΕͨΒͲ͏͠Α͏࣍ճʮશ෦iOSʹ͠Ό΂ΒͤͪΌ͑ʂʯ ָ͓͠Έʹ

  3. 本当に採択されました

  4. バカなの?

  5. バカなの? (いい意味で)

  6. About Me • ひろん(一宮 浩教) • Twitter:
 @hironytic • GitHub:


    https://github.com/hironytic • 徳島在住エンジニア Him
  7. CfPに応募したプロポーザル ͍͚ͬͳʔ͍τʔΫτʔΫࢲɺͻΖΜɻࠓ೥΋iOSDCͷLT ʹԠืͨ͠ͷ✨Ͱ΋iOSDC͸ڝٕLTΦʔσΟΤϯε΋͍ͬͺ͍ ͍Δ͔Βۓுͯ͠͠Ό΂Εͳ͍Αʔ͋ɺͦ͏ͩ AVSpeechSynthesizerͪΌΜͱPDF Kit͘ΜʹཔΊ͹ɺ୅ΘΓʹ ൃදͯ͘͠ΕΔΜ͡Όͳ͍ʁࢲ͋ͬͨ·͍͍ʔ…ͬͯຊ౰ʹ࠾ ୒͞ΕͨΒͲ͏͠Α͏࣍ճʮશ෦iOSʹ͠Ό΂ΒͤͪΌ͑ʂʯ ָ͓͠Έʹ

  8. CfPに応募したプロポーザル ͍͚ͬͳʔ͍τʔΫτʔΫࢲɺͻΖΜɻࠓ೥΋iOSDCͷLT ʹԠืͨ͠ͷ✨Ͱ΋iOSDC͸ڝٕLTΦʔσΟΤϯε΋͍ͬͺ͍ ͍Δ͔Βۓுͯ͠͠Ό΂Εͳ͍Αʔ͋ɺͦ͏ͩ AVSpeechSynthesizerͪΌΜͱPDF Kit͘ΜʹཔΊ͹ɺ୅ΘΓʹ ൃදͯ͘͠ΕΔΜ͡Όͳ͍ʁࢲ͋ͬͨ·͍͍ʔ…ͬͯຊ౰ʹ࠾ ୒͞ΕͨΒͲ͏͠Α͏࣍ճʮશ෦iOSʹ͠Ό΂ΒͤͪΌ͑ʂʯ ָ͓͠Έʹ

  9. AVSpeechSynthesizer • テキストの読み上げをしてくれるAPI • iOS 7.0+ ‣ Documentation > AVFoundation

    > Speech Synthesis ‣ AVSpeechSynthesizer: Making iOS Talk - WWDC 2018 Video See Also
  10. AVSpeechSynthesizer let speechSynthesizer = AVSpeechSynthesizer() let utterance = AVSpeechUtterance(string: "ͦΕ͸໘ന͍࣭໰Ͱ͢Ͷ")

    utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP") speechSynthesizer.speak(utterance) すごく簡単にしゃべらせられる
  11. AVSpeechSynthesizer let speechSynthesizer = AVSpeechSynthesizer() let utterance1 = AVSpeechUtterance(string: "࿩͢εϐʔυΛม͑ͨΓ")

    utterance1.voice = AVSpeechSynthesisVoice(language: "ja-JP") utterance1.rate = 0.7 speechSynthesizer.speak(utterance1) let utterance2 = AVSpeechUtterance(string: "੠ͷߴ͞Λม͑ͨΓ") utterance2.voice = AVSpeechSynthesisVoice(language: "ja-JP") utterance2.pitchMultiplier = 0.5 speechSynthesizer.speak(utterance2)
  12. AVSpeechSynthesizer let speechSynthesizer = AVSpeechSynthesizer() let utterance1 = AVSpeechUtterance(string: "࿩͢εϐʔυΛม͑ͨΓ")

    utterance1.voice = AVSpeechSynthesisVoice(language: "ja-JP") utterance1.rate = 0.7 speechSynthesizer.speak(utterance1) let utterance2 = AVSpeechUtterance(string: "੠ͷߴ͞Λม͑ͨΓ") utterance2.voice = AVSpeechSynthesisVoice(language: "ja-JP") utterance2.pitchMultiplier = 0.5 speechSynthesizer.speak(utterance2)
  13. AVSpeechSynthesizer let speechSynthesizer = AVSpeechSynthesizer() let utterance1 = AVSpeechUtterance(string: "࿩͢εϐʔυΛม͑ͨΓ")

    utterance1.voice = AVSpeechSynthesisVoice(language: "ja-JP") utterance1.rate = 0.7 speechSynthesizer.speak(utterance1) let utterance2 = AVSpeechUtterance(string: "੠ͷߴ͞Λม͑ͨΓ") utterance2.voice = AVSpeechSynthesisVoice(language: "ja-JP") utterance2.pitchMultiplier = 0.5 speechSynthesizer.speak(utterance2)
  14. PDF Kit • PDFの表示、データの取得、編集といった操作を 行うフレームワーク • iOS 11.0+ ‣ Documentation

    > PDFKit ‣ Introducing PDFKit on iOS - WWDC 2017 Video ‣ iOS 11 Programming 第10章 PDF Kit - 書籍(PEAKS) See Also
  15. PDFView 簡単にPDFドキュメントを表示できるビュー // ϏϡʔͷදࣔઃఆΛ͓͍ͯͯ͠ pdfView.displayMode = .singlePage pdfView.displayDirection = .horizontal

    pdfView.autoScales = true // දࣔ͢ΔPDFυΩϡϝϯτΛࢦఆ͢Δ pdfDocument = PDFDocument(data: pdfData)! pdfView.document = pdfDocument
  16. PDFView プログラムで指定したページを
 表示させることができる // 6ϖʔδ໨Λදࣔ if let pdfPage = pdfDocument.page(at:

    5) { pdfView.go(to: pdfPage) }
  17. 作戦

  18. 作戦 プレゼンツールを使って スライドを作成

  19. 作戦 プレゼンツールを使って スライドを作成 1%' PDF書き出し

  20. 作戦 プレゼンツールを使って スライドを作成 1%' PDF書き出し 1%'7JFX

  21. 作戦 プレゼンツールを使って スライドを作成 1%' PDF書き出し 1%'7JFX ✦ページを変更 - 1ページへ ✦話す

    - それでは発表します。 ✦ページを変更 - 2ページへ ✦話す - これが応募したプロポー ザルの内容です。 ✦話す - いっけなーい、..
 .......
 ....... ページの切り替えや 話す内容に関する シナリオを作成
  22. 作戦 プレゼンツールを使って スライドを作成 1%' PDF書き出し 1%'7JFX "74QFFDI
 4ZOUIFTJ[FS ✦ページを変更 -

    1ページへ ✦話す - それでは発表します。 ✦ページを変更 - 2ページへ ✦話す - これが応募したプロポー ザルの内容です。 ✦話す - いっけなーい、..
 .......
 ....... ページの切り替えや 話す内容に関する シナリオを作成
  23. Document-Based App ‣ Document Based Apps ‣ Document-Based App Programming

    Guide for iOS ‣ iOS ドキュメントベースアプリケーション プログラミングガイド (日本語訳PDF) ‣ Building Great Document-based Apps in iOS 11 - WWDC 2018 Video ‣ Building Document Based Apps - WWDC 2015 Video ‣ iOS 11 Programming 第7章 FilesとDocument Based Application - 書籍(PEAKS) See Also
  24. 外部ディスプレイ対応 • 外部ディスプレイ - LightningからHDMIやVGAで出力したとき - AirPlayでApple TVへ出力したとき ‣ Multiple

    Display Programming Guide for iOS ‣ iOS マルチディスプレイ プログラミングガイド (日本語訳PDF) See Also
  25. ⭐ https://github.com/hironytic/MrHappyoI

  26. 実際にしゃべらせると 困ったこと

  27. なんか違う AVSpeechSynthesizer 数行書くだけで

  28. なんか違う AVSpeechSynthesizer → アブズピーチシンササイザー 数行書くだけで

  29. なんか違う AVSpeechSynthesizer → アブズピーチシンササイザー 数行書くだけで → すうこうかくだけで

  30. なんか違う AVSpeechSynthesizer 数行書くだけで カタカナ、ひらがなで指定すれば大丈夫 エーブイスピーチシンセサイザー すうぎょう書くだけで

  31. ちょっと聞き取りづらい もしかして バカなの?

  32. ちょっと聞き取りづらい もしかして 運営って バカなの?

  33. ちょっと聞き取りづらい もしかして 運営って バカなの? もしかして 採択している人たち バカなの?

  34. まとめ

  35. まとめ • CfPにネタで煽ると、煽り返されるという知見

  36. まとめ • CfPにネタで煽ると、煽り返されるという知見 • iOSが、がんばりました - AVSpeechSynthesizer / こいつ・・・しゃべるぞ -

    PDF Kit / 見せてもらおうか、新しいスライドとやらを
  37. ご清聴ありがとうございました 終 協力 i O S