Soumettre la recherche
Mettre en ligne
Speech Framework
•
1 j'aime
•
1,536 vues
Gaprot
Suivre
iOS 10 で追加された Speech Framework の概要や使い方についてまとめました。
Lire moins
Lire la suite
Mobile
Signaler
Partager
Signaler
Partager
1 sur 40
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
SiriKit iOS10
SiriKit iOS10
Gaprot
Vagrant
Vagrant
Hiroshi Toyama
第5回 デジタルガジェット祭り! スマートスピーカー特集(5)
第5回 デジタルガジェット祭り! スマートスピーカー特集(5)
aitc_jp
Fluentd
Fluentd
Hiroshi Toyama
Spring social の基礎
Spring social の基礎
Takuya Iwatsuka
[デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ
[デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ
gree_tech
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
虎の穴 開発室
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
Toshiharu Sugiyama
Recommandé
SiriKit iOS10
SiriKit iOS10
Gaprot
Vagrant
Vagrant
Hiroshi Toyama
第5回 デジタルガジェット祭り! スマートスピーカー特集(5)
第5回 デジタルガジェット祭り! スマートスピーカー特集(5)
aitc_jp
Fluentd
Fluentd
Hiroshi Toyama
Spring social の基礎
Spring social の基礎
Takuya Iwatsuka
[デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ
[デブサミ秋2015] 新卒入社エンジニアが2年間fluentdを運用して学んだ事いろいろ
gree_tech
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
虎の穴 開発室
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
Toshiharu Sugiyama
決済金融から始めるデータドリブンカンパニー #yjmu
決済金融から始めるデータドリブンカンパニー #yjmu
Yahoo!デベロッパーネットワーク
Terraform with Bitbucket pipeline
Terraform with Bitbucket pipeline
Masatomo Ito
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
心 谷本
決済金融から始めるデータドリブンカンパニー
決済金融から始めるデータドリブンカンパニー
Tokuhiro Eto
Oracle Application Express Plug-inをつかってみよう
Oracle Application Express Plug-inをつかってみよう
utatu
Nifty cloud jtf2014ハンズオン資料
Nifty cloud jtf2014ハンズオン資料
亮介 山口
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
Ayumu Kawaguchi
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
David Buck
FFR EXCALOC
FFR EXCALOC
FFRI, Inc.
1.29.user,user,user
1.29.user,user,user
Tonny Xu
Lithium Labo #1
Lithium Labo #1
Yusuke Ando
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
akira6592
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
心 谷本
攻撃者の行動を追跡せよ -行動パターンに基づく横断的侵害の把握と調査- by 朝長 秀誠, 六田 佳祐
攻撃者の行動を追跡せよ -行動パターンに基づく横断的侵害の把握と調査- by 朝長 秀誠, 六田 佳祐
CODE BLUE
1MB
1MB
arase_utagoe
BBBBB
BBBBB
arase_utagoe
ドリコムのInfrastructure as code
ドリコムのInfrastructure as code
Yosuke Hiraishi
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
Drecom Co., Ltd.
AR開発高速化!「CFA」作りました!
AR開発高速化!「CFA」作りました!
Gaprot
Unity + iOS/Android VR ことはじめ
Unity + iOS/Android VR ことはじめ
Gaprot
Contenu connexe
Similaire à Speech Framework
決済金融から始めるデータドリブンカンパニー #yjmu
決済金融から始めるデータドリブンカンパニー #yjmu
Yahoo!デベロッパーネットワーク
Terraform with Bitbucket pipeline
Terraform with Bitbucket pipeline
Masatomo Ito
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
心 谷本
決済金融から始めるデータドリブンカンパニー
決済金融から始めるデータドリブンカンパニー
Tokuhiro Eto
Oracle Application Express Plug-inをつかってみよう
Oracle Application Express Plug-inをつかってみよう
utatu
Nifty cloud jtf2014ハンズオン資料
Nifty cloud jtf2014ハンズオン資料
亮介 山口
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
Ayumu Kawaguchi
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
David Buck
FFR EXCALOC
FFR EXCALOC
FFRI, Inc.
1.29.user,user,user
1.29.user,user,user
Tonny Xu
Lithium Labo #1
Lithium Labo #1
Yusuke Ando
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
akira6592
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
心 谷本
攻撃者の行動を追跡せよ -行動パターンに基づく横断的侵害の把握と調査- by 朝長 秀誠, 六田 佳祐
攻撃者の行動を追跡せよ -行動パターンに基づく横断的侵害の把握と調査- by 朝長 秀誠, 六田 佳祐
CODE BLUE
1MB
1MB
arase_utagoe
BBBBB
BBBBB
arase_utagoe
ドリコムのInfrastructure as code
ドリコムのInfrastructure as code
Yosuke Hiraishi
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
Drecom Co., Ltd.
Similaire à Speech Framework
(20)
決済金融から始めるデータドリブンカンパニー #yjmu
決済金融から始めるデータドリブンカンパニー #yjmu
Terraform with Bitbucket pipeline
Terraform with Bitbucket pipeline
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
決済金融から始めるデータドリブンカンパニー
決済金融から始めるデータドリブンカンパニー
Oracle Application Express Plug-inをつかってみよう
Oracle Application Express Plug-inをつかってみよう
Nifty cloud jtf2014ハンズオン資料
Nifty cloud jtf2014ハンズオン資料
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
JDK Mission Control: Where We Are, Where We Are Going [Groundbreakers APAC 20...
FFR EXCALOC
FFR EXCALOC
1.29.user,user,user
1.29.user,user,user
Lithium Labo #1
Lithium Labo #1
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
人気番組との戦い! Javaシステムのパフォーマンスチューニング奮闘記
攻撃者の行動を追跡せよ -行動パターンに基づく横断的侵害の把握と調査- by 朝長 秀誠, 六田 佳祐
攻撃者の行動を追跡せよ -行動パターンに基づく横断的侵害の把握と調査- by 朝長 秀誠, 六田 佳祐
1MB
1MB
BBBBB
BBBBB
ドリコムのInfrastructure as code
ドリコムのInfrastructure as code
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
Plus de Gaprot
AR開発高速化!「CFA」作りました!
AR開発高速化!「CFA」作りました!
Gaprot
Unity + iOS/Android VR ことはじめ
Unity + iOS/Android VR ことはじめ
Gaprot
1201 ギャップロ軍団企画書
1201 ギャップロ軍団企画書
Gaprot
Proactive Suggestions
Proactive Suggestions
Gaprot
New Notification API in iOS 10
New Notification API in iOS 10
Gaprot
iOS 10 new Camera
iOS 10 new Camera
Gaprot
HTML5 + JavaScriptでDRMつきMPEG-DASHを再生させる
HTML5 + JavaScriptでDRMつきMPEG-DASHを再生させる
Gaprot
Aiマッシュアップ委員会 仕様説明資料
Aiマッシュアップ委員会 仕様説明資料
Gaprot
GoF のデザインパターンじゃないけど、よくあるパターン
GoF のデザインパターンじゃないけど、よくあるパターン
Gaprot
Java の Collection 関連について整理してみました
Java の Collection 関連について整理してみました
Gaprot
Salmon Hunt
Salmon Hunt
Gaprot
SONY Camera Remote API
SONY Camera Remote API
Gaprot
「バグあるある」と「仕様変更あるある」一挙大放出SP!
「バグあるある」と「仕様変更あるある」一挙大放出SP!
Gaprot
Plus de Gaprot
(13)
AR開発高速化!「CFA」作りました!
AR開発高速化!「CFA」作りました!
Unity + iOS/Android VR ことはじめ
Unity + iOS/Android VR ことはじめ
1201 ギャップロ軍団企画書
1201 ギャップロ軍団企画書
Proactive Suggestions
Proactive Suggestions
New Notification API in iOS 10
New Notification API in iOS 10
iOS 10 new Camera
iOS 10 new Camera
HTML5 + JavaScriptでDRMつきMPEG-DASHを再生させる
HTML5 + JavaScriptでDRMつきMPEG-DASHを再生させる
Aiマッシュアップ委員会 仕様説明資料
Aiマッシュアップ委員会 仕様説明資料
GoF のデザインパターンじゃないけど、よくあるパターン
GoF のデザインパターンじゃないけど、よくあるパターン
Java の Collection 関連について整理してみました
Java の Collection 関連について整理してみました
Salmon Hunt
Salmon Hunt
SONY Camera Remote API
SONY Camera Remote API
「バグあるある」と「仕様変更あるある」一挙大放出SP!
「バグあるある」と「仕様変更あるある」一挙大放出SP!
Speech Framework
1.
Copyright © Up-frontier,
Inc. All rights reserved. Speech Framework 1
2.
Copyright © Up-frontier,
Inc. All rights reserved. アジェンダ • Speech Framework とは • 使い⽅ • 使いどころ 2
3.
Copyright © Up-frontier,
Inc. All rights reserved. アジェンダ • Speech Framework とは • 使い⽅ • 使いどころ 3
4.
Copyright © Up-frontier,
Inc. All rights reserved. …の前に、まずは Keyboard Dictation 4
5.
Copyright © Up-frontier,
Inc. All rights reserved. Keyboard Dictation • iPhone 4S からキーボードに内蔵 されていた、⾳声⼊⼒機能 • OS の機能であって、 アプリの機能ではない • 設定 → ⼀般 → キーボード → ⾳声⼊⼒ 5
6.
Copyright © Up-frontier,
Inc. All rights reserved. Keyboard Dictation • iPhone 4S からキーボードに内蔵 されていた、⾳声⼊⼒機能 • OS の機能であって、 アプリの機能ではない • 設定 → ⼀般 → キーボード → ⾳声⼊⼒ 6 これ
7.
Copyright © Up-frontier,
Inc. All rights reserved. Keyboard Dictation • 有効無効の設定を知るための API がない • 必ずキーボードとセット • キーボード⾔語に依存 7
8.
Copyright © Up-frontier,
Inc. All rights reserved. …では改めて Speech Framework 8
9.
Copyright © Up-frontier,
Inc. All rights reserved. Speech Framework • 平たく⾔うと、⾳声認識APIです • 受け取った⾳声をテキストとして扱う • 認識の部分は Siriと同じエンジン を利⽤ • リッチな結果(ベストと候補、確度など) • ⾳声ファイルからの⼊⼒も可能 9
10.
Copyright © Up-frontier,
Inc. All rights reserved. • マイクを利⽤したリアルタイム⾳声 • wavやmp3などの⾳声データでもOK 10
11.
Copyright © Up-frontier,
Inc. All rights reserved. 注意点 • 基本ネットワーク接続が必須 • リクエストに制限あり (アプリごと、端末ごと) • 機密情報は NG (password, health, financial) • ユーザに親切な UI を⼼がける - 録⾳中、認識途中の結果、最終的な認識結果 11
12.
Copyright © Up-frontier,
Inc. All rights reserved. アジェンダ • Speech Framework とは • 使い⽅ • 使いどころ 12
13.
Copyright © Up-frontier,
Inc. All rights reserved. ① ユーザの許可を得る 13
14.
Copyright © Up-frontier,
Inc. All rights reserved. ユーザ許可 SFSpeechRecognizer.requestAuthorization { status in switch status { case .authorized: case .denied: case .notDetermined: case .restricted: } } 14
15.
Copyright © Up-frontier,
Inc. All rights reserved. ユーザ許可 SFSpeechRecognizer.requestAuthorization { status in switch status { case .authorized: case .denied: case .notDetermined: case .restricted: } } 15 よくある権限ステータス (位置情報アクセスなど)
16.
Copyright © Up-frontier,
Inc. All rights reserved. ユーザ許可 SFSpeechRecognizer.requestAuthorization { status in switch status { case .authorized: case .denied: case .notDetermined: case .restricted: } } 16 デバイス判断で NG 前述の”リクエスト制限”によるもの?
17.
Copyright © Up-frontier,
Inc. All rights reserved. 17
18.
Copyright © Up-frontier,
Inc. All rights reserved. 18
19.
Copyright © Up-frontier,
Inc. All rights reserved. Info.plist <key>NSSpeechRecognitionUsageDescription</key> <string>SpeechFramework の使⽤⽬的</string> 19
20.
Copyright © Up-frontier,
Inc. All rights reserved. Info.plist <key>NSSpeechRecognitionUsageDescription</key> <string>SpeechFramework の使⽤⽬的</string> 20 ローカライズが必要な場合は、 InfoPlist.string を利⽤しましょう。 (plistじゃ視認性も悪いしね)
21.
Copyright © Up-frontier,
Inc. All rights reserved. ② リクエストを作る 21
22.
Copyright © Up-frontier,
Inc. All rights reserved. リクエスト guard let audioURL = R.file.speechMp3() else { print("Could not get file URL!") return } let request = SFSpeechURLRecognitionRequest(url: audioURL) 22
23.
Copyright © Up-frontier,
Inc. All rights reserved. リクエスト guard let audioURL = R.file.speechMp3() else { print("Could not get file URL!") return } let request = SFSpeechURLRecognitionRequest(url: audioURL) 23 対象のファイルのURLを⽣成して
24.
Copyright © Up-frontier,
Inc. All rights reserved. リクエスト guard let audioURL = R.file.speechMp3() else { print("Could not get file URL!") return } let request = SFSpeechURLRecognitionRequest(url: audioURL) 24 リクエストを⽣成する
25.
Copyright © Up-frontier,
Inc. All rights reserved. ③ タスクを作って実⾏ 25
26.
Copyright © Up-frontier,
Inc. All rights reserved. タスク let recognizer = SFSpeechRecognizer( locale: Locale(identifier: "ja-JP")) recognizer?.recognitionTask(with: request) { result, error in guard let result = result else { print("Error on recognition task: (error)") return } self.textView.text = result .bestTranscription.formattedString print(result.transcriptions) } 26
27.
Copyright © Up-frontier,
Inc. All rights reserved. タスク let recognizer = SFSpeechRecognizer( locale: Locale(identifier: "ja-JP")) recognizer?.recognitionTask(with: request) { result, error in guard let result = result else { print("Error on recognition task: (error)") return } self.textView.text = result .bestTranscription.formattedString print(result.transcriptions) } 27 ロケールを指定して SFSpeechRecognizer を⽣成
28.
Copyright © Up-frontier,
Inc. All rights reserved. タスク let recognizer = SFSpeechRecognizer( locale: Locale(identifier: "ja-JP")) recognizer?.recognitionTask(with: request) { result, error in guard let result = result else { print("Error on recognition task: (error)") return } self.textView.text = result .bestTranscription.formattedString print(result.transcriptions) } 28 en-US を指定すれば、⽶英語
29.
Copyright © Up-frontier,
Inc. All rights reserved. タスク let recognizer = SFSpeechRecognizer( locale: Locale(identifier: “ja-JP")) recognizer?.recognitionTask(with: request) { result, error in guard let result = result else { print("Error on recognition task: (error)") return } self.textView.text = result .bestTranscription.formattedString print(result.transcriptions) } 29 事前に⽣成した request を指定して タスクメソッドを実⾏する。
30.
Copyright © Up-frontier,
Inc. All rights reserved. タスク let recognizer = SFSpeechRecognizer( locale: Locale(identifier: “ja-JP")) recognizer?.recognitionTask(with: request) { result, error in guard let result = result else { print("Error on recognition task: (error)") return } self.textView.text = result .bestTranscription.formattedString print(result.transcriptions) } 30 結果はクロージャで受け取る
31.
Copyright © Up-frontier,
Inc. All rights reserved. タスク let recognizer = SFSpeechRecognizer( locale: Locale(identifier: “ja-JP")) recognizer?.recognitionTask(with: request) { result, error in guard let result = result else { print("Error on recognition task: (error)") return } self.textView.text = result .bestTranscription.formattedString print(result.transcriptions) } 31
32.
Copyright © Up-frontier,
Inc. All rights reserved. タスク let recognizer = SFSpeechRecognizer( locale: Locale(identifier: “ja-JP")) recognizer?.recognitionTask(with: request) { result, error in guard let result = result else { print("Error on recognition task: (error)") return } self.textView.text = result .bestTranscription.formattedString print(result.transcriptions) } 32 1番確度の⾼いものを いい感じのフォーマットで受け取る
33.
Copyright © Up-frontier,
Inc. All rights reserved. タスク let recognizer = SFSpeechRecognizer( locale: Locale(identifier: “ja-JP")) recognizer?.recognitionTask(with: request) { result, error in guard let result = result else { print("Error on recognition task: (error)") return } self.textView.text = result .bestTranscription.formattedString print(result.transcriptions) } 33 bestTranscription 導出過程の候補はここにある
34.
Copyright © Up-frontier,
Inc. All rights reserved. 使い⽅まとめ 1. ユーザに許可を求めて 2. リクエストを作って 3. SFSpeechRecognizer にタスクとしてお願い 34
35.
Copyright © Up-frontier,
Inc. All rights reserved. アジェンダ • Speech Framework とは • 使い⽅ • 使いどころ 35
36.
Copyright © Up-frontier,
Inc. All rights reserved. ⾶びつく前に • Keyboard Dictation で実現できないかを まず考える • リクエスト制限などを考えると、 コアの機能には持ってきにくい - 具体的な制限回数については明記なし 36
37.
Copyright © Up-frontier,
Inc. All rights reserved. 考えられるユースケース • 「チーズ」という⾔葉に反応して、 ⾃動でシャッターを切るカメラ (WWDCビデ オ) • 外国語の発⾳練習 • ⾃作キーボードアプリに⾳声⼊⼒機能を実装 • Podcast やボイスレコーダーのテキスト起こし 37
38.
Copyright © Up-frontier,
Inc. All rights reserved. 考えられるユースケース Speech Framework を利⽤した、英単語の発⾳練習アプリ 38
39.
Copyright © Up-frontier,
Inc. All rights reserved. 考えられるユースケース Speech Framework を利⽤した、英単語の発⾳練習アプリ 39
40.
Copyright © Up-frontier,
Inc. All rights reserved. まとめ • 本家 Apple 製の⾳声認識API • 解析エンジンは Siri と同様のもの • マイク⼊⼒とファイル⼊⼒の両⽅で利⽤可能 • 利⽤回数や利⽤時間に制限がある 40
Télécharger maintenant