はじめに翻訳アプリを作成するために使用した技術は下記のとおりです。いうのを目標に書いてみました。(ので、大した技術要素はありません。記事の内容は、過去に書いたものと多数重複しております事をお許し下さい。仕様を考えてみました。起動すると、何もしなくても音声を受け付けるようになっている翻訳ボタンなんかは、押さない(存在しない)(端末の向きを変えた時、翻訳され読み上げられる)「日本語入力/英語入力」の切り替えボタンなんかは押さない(存在しない)(端末を「自分向き/相手向き」に変えると、いつでも直ちに切り替わる)実際に、使用している様子です。(Preview)を使用させて頂きました。10以降に設定しています。追加パッケージパッケージの追加からSystem.Net.HttpとJson.NETを追加しました。追加後のソリューションの状況です。本アプリでは、画面の上下変化で、日本語入力と英語入力を切り替えています。Downのみにチェックを入れます。かかっているため、ViewController.csに以下の行を追加しました。UIInterfaceOrientationMask.All;}続いて、画面回転のイベントが処理できるように、UIDeviceOrientationDidChangeNotificationの通知を処理します。音声入力(SFSpeechRecognizer)音声入力には、SFSpeechRecognizerを使用しました。SFSpeechRecognizerは、リアルタイム音声及び、録音済み音声に対応していますが、今回利用したのはリアルタイム音声による入力です。リアルタイム音声を利用する場合の作業は、概ね次のとおりです。ユーザの許可(info.plist)info.plistに下記の2つの設定を追加し、ユーザからの許可を得ます。NSMicrophoneUsageDescription(マイクの用途について)NSSpeechRecognitionUsageDescription(音声認識の用途について)設定を追加するには、info.plitsをダブルクリックして開き、Sourceをタブを選択します。Entryをクリックして、新しい行を追加し、キーとその用途を設定します。Codeで直接編集しました。ユーザに許可を求めるダイアログは、下記のように表示されます。どちらも許可することで、マイクと音声入力が可能になります。マイクの利用(AVAudioEngine)マイクの利用には、AVAudioEngineを使用します。利用の方法は、概ね次のとおりです。SFSpeechRecognizerの作成ロケールを指定してSFSpeechRecognizerを作成します。リクエストの作成マイク等のオーディオバッファを利用する場合は、SFSpeechAudioBufferRecognitionRequestを使用します。リクエストの開始とデータ取得recognitionTaskでリクエストを開始してクロージャーで入力を取得します。入力に変化があるたびに、開始後の全部の文字列が返されます。}}音声の入力に関しては、サンプルコードのRecognizer.csに纏まっていますので、詳しくはそちらをご参照ください。Translatorを利用させて頂きました。同サービスは、1ヶ月あたり200万文字まで無料で利用可能です。https://datamarket.azure.com/dataset/bing/microsofttranslator端末の向きが変わった時点で、SFSpeechRecognizerの出力したテキストを同サービスで翻訳して、直ちに読み上げています。翻訳に関しては、サンプルコードのTranslator.csに纏まっていますので、詳しくはそちらをご参照ください。過去の記事ですが、参考になれば幸いです。読み上げ読み上げには、AVFoundationを使用しました。使い方は、非常に簡単です。1.0f,};speechSynthesizer.SpeakUtterance(speechUtterance);本アプリでは、翻訳が完了した時点で、直ちに読み上げを行っています。読み上げの際は、音声入力で使用していた、AVAudioSessionの設定変更を忘れないようにして下さい。AVAudioSession.SharedInstance();audioSession.SetCategory(AVAudioSessionCategory.Ambient);読み上げに関しては、サンプルコードのSpeech.csに纏まっていますので、詳しくはそちらをご参照ください。最後に英会話超弱者な私は、なんとか使える翻訳機が欲しいです。今後、なんとか、このアプリを鍛えたいと思います。コードは下記に置きました。気になるところが有りましたら、ぜひ教えてやってください。https://github.com/furuya02/PracticalTranslator※上記のコードを動作させるためには、翻訳サービスのキーが必要です。各自で別途ご用意下さい。(イラストは、素材Library.com様のものを利用させて頂きました。3,259,208CX事業本部の平内です。最近は、音声で操作するアプリの開発を担当させて頂いてます。MacでiOS/Androidを書いてみた。Macで.NETプログラム(C#)を書いてみた。〜ログ収集、監視、分析を触って体感しよう!〜」を開催しますお申し込み受付は終了しました。ありがとうございました。今後セミナーのお知らせを受け取りたい方は、こちらからご登録をお願いします。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe300件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui300インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。平野重利123Pythonで、標準入力を変換して標準出力に出すCLIプログラムのテンプレートをご紹介します。菊池修治47こんにちは、菊池です。勉強会#1に登壇しました。サーバのみならずネットワーク機器の仮想化も年々進んでいます。スペックに縛られないこととか、展開のしやすさとか初期考慮点が少なくなるのは嬉しいです。武田隆志1098このエントリは、2018年、2019年に公開したAWS全サービスまとめの2020年版です。これまではいくつかに分割して公開していましたが、1エントリにまとめてほしいという要望をもらっていたため、今年は1エントリに集約してみました。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe300件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui300インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。悠紀235ShifterはWordPress環境をサーバーレスで立ち上げ、静的なサイトを生成することができるサービスです。FAQサイトをサクッと作ってみました。Takumi227こんにちは。DA事業本部の春田です。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。