ブログ

割とコンピュータよりの情報をお届けします。

2021年3月27日

Windows 10 2004以降のコルタナさんの仕様変更?

Windows 10 のアップデートをインストールしたら「コルタナさん」という呼びかけでコルタナさんがアクティブ化できなくなった.

最近サブに使っているパソコンにWindows 10の20H2が降ってきた.順次アップデートの配信がされているらしい.特に古いバージョンを使っている場合にはアップデートを勧めてくるみたい.
Windows 10 20H2のアップデートをインストールしたら「コルタナさん」という呼びかけでコルタナさんがアクティブ化できなくなっていることに気が付いた.

メインも2004になっていてすでに呼びかけでアクティブ化できなくなっていたようだ.そういえば,しばらく呼びかけていなかった.

しばらくこの仕様のままになるようだ.ただコルタナの設定では「今後のアップデートに追加されます。」と表示されるので
アップデートを期待しています.

≫ 続きを読む

2021/03/27 日記   TakeMe

WebView2ランタイムで音声読み上げ Vol. 2

WebView2なら音声読み上げを入れることができる.SAPIの代わりに使いたい場合には動的にJavaScriptを実行するようにならないといけないな。と思って修正.

SAPIの代わりに使う場合には,WebView2.CoreWebView2.ExecuteScriptAsyncを使えばよい.
例えとして下にサンプルを示す.
ただし,この例では毎回var synthes = new SpeechSynthesisUtterance()とやっているので注意して.オーバーヘッドが大きい.
もともとWindows 10の場合にはすでにSAPIがあるので読み上げ機能を使うだけでやるのは意味はない.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            string path = Directory.GetCurrentDirectory();

            path = path + @"\\index.html";

            this.webView21.Source = new Uri(path);
        }

        private async void button1_Click(object sender, EventArgs e)
        {
            string text =
                "var synthes = new SpeechSynthesisUtterance('こんにちは');" +
                "speechSynthesis.speak(synthes);";
            await this.webView21.CoreWebView2.ExecuteScriptAsync(text);
        }
    }
}


WebView2.CoreWebView2.ExecuteScriptAsyncがつかえるのはページを読み終わって表示し終わってからだと思う.その前に実行すると例外が発生すると思う.

SAPIだけでやる場合には以下のように行うのです.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            SpeechLib.SpVoice sp = new SpeechLib.SpVoice();
            sp.Speak("アレクサ。今なんじ");
        }
    }
}

≫ 続きを読む

2021/03/27 コンピュータ   TakeMe
タグ:Windows Forms