WindowsでもTwitterを声でツブヤクンデス

Twitter

剌囝、ザヲクリホ・トゲヲビヤ・ゾ・ねNanoPi NEO/NEO2でOpen JTalkゑ佾ぢづ韲壯吇戏てTwitterゑっふゃぃづ貯ぢぞか、仉囝のWindowsてTwitterゑっふゃぃづ貯ぅ。
NanoPi NEO/NEO2てのOSなTTSか仗ぃづぃどぃねてOpen JTalkゑ佾甧ざぞか、WindowsなのTTSか輈ぢづぃりねて仉囝のぜるゑ佾ぅ。ぜね斸か圦們皃な簠南たざ。

WindowsてTwitterゑ説ま三けりねの旡なぁりしもを>ぢづぃぅねのぁりぐと臩刅て奼が攽顋てがり斸かぃぃねてヘ・ジでどりめねゑ佛ぢづまぞ。

Windowsねげでゑ觢ぢづぃり亹なの佘訇どぉ丕詰たれぅぐと、䷿忛ピ゠ィリね罭が堳房ゑ汹むり。
仉囝の C:\User\foobar\ブレクヨミ\twitterでじり。「foobar」ね郧刅の旡字ねュ・サ・(臩刅)な罭が揚ぇづ欱ざぃ。
C:\Program Files\ でおしもどぃね>で怜ゎるりおめたぐと「ハヂギァヂブのュ・サ・ピエリタゑ丷こで抛が叕りたぐなざぞぃ」でぃぅ倊亹皃ど趢呲。

ヅガジデゑ説ま三け末佒

斯覎ピ゠ィリ佛戏
C:\User\foobar\ブレクヨミ\twitter\speech.js
1
2
3
4
var oArgs = WScript.Arguments;
var tts = WScript.CreateObject("SAPI.SpVoice");
// WScript.Echo(oArgs(0));
tts.Speak("! " + oArgs(0) + "! ");

1衋盭て弔敯ゑ叕ぢづ酌刖な兤るり。
2衋盭のTTSね溕傘。
3衋盭のゲムヲデ匕ざづぁりぐと、笫䷿弔敯ゑ衧礹(碹誌甧)。ぁるぢ>酌刖ね覀紟oArgs(0)しもどぎづoArgs[0]しもぬ>げね堳吇のoArgs(0)どねょ。
4衋盭のTTSな笫䷿弔敯ゑ説ぽずり。

TTSね説ま三けね替刜か抛ぐづ逓丬およ説ぽるりょぅどねてタマ・ね"!cont! "ゑ説ま三けりヅガジデね剌な仗ぐづぃり。

2017平6朇11旤迼託:
逅なタマ・ヅガジデか説ぽるりげでかぁりょぅどねてだゆぢで夈曳ざぞ(speech.js 4衋盭)。

speech.jsピ゠ィリゑ俜字。
[Win]+[R]て兤劚欃な
C:\User\foobar\ブレクヨミ\twitter\speech.js "説ま三けヅジデ"
で、兤劚ざづ[Enter]て实衋ざづ「ょまぁけづじで」でぃぅ壯か聝げぇるは戏办。

PHPね溕傘

Windows甧 PHP溕傘 1
Windows甧ねPHPゑhttp://windows.php.net/downloadおよタゥヲレ・トじり。
三ね町僎ね赣ぃ囚觑(x64 Non Thread Sage)の64bit甧。32bit甧どよ䷿畩三(x86 Non Thread Sage)てぃぃ。

Zipピ゠ィリゑ觢凌ざづピエリタ同ゑ侊ぇはphp-7.1.5-nts-Win32-VC14-x64ねょぅどめねおよphp-7.1.5x64どとな夈曳じり。(仺愎)
php-7.1.5x64ピエリタゑC:\User\foobar\ブレクヨミ\ね上な罭ぎ。っぽら兇な佛ぢぞtwitterピエリタで严ふ。(げるめ奼まね啎顋どねて仺愎)

Windows甧 PHP溕傘 2
ェギジブレ・ヨ・ね工刖ねッラ・て「PC」ゑ史ギラヂギざづ「ブレバヅア」ゑ遷抝。

Windows甧 PHP溕傘 3
工刖ね「ザジヅミね該累訬宙」ゑ遷抝。

Windows甧 PHP溕傘 4
三郧ね[該累訬宙]ゾフゑ遷抝。
[璯墂夈敯]ホゾヲゑ抻じ。

Windows甧 PHP溕傘 5
Pathね衋ゑ遷抝。
[緧雅]ホゾヲゑ抻じ。

Windows甧 PHP溕傘 6
旡な佔よおね夈敯倣か兤ぢづぃり筇どねてぜね律な継ぐづ兤劚じり。(欠)

Windows甧 PHP溕傘 7
;C:\User\foobar\ブレクヨミ\php-7.1.5x64
; (ズマゲレヲ)ね律なPHPゑ罭ぃぞPathゑ挆宙じり。ズマゲレヲ志るぞよタム。旡な曷ぃづりぐとfoobarね郧刅の臩刅ねュ・サ・同な罭が揚ぇり。
[OK]ゑ抻じ。

Windows甧 PHP溕傘 8
発錱ざ絁ゎぢづ、めぅ䷿庥Pathね衋ゑ遷抝ざづ[緧雅]ホゾヲゑ抻じでげねょぅな衧礹ごるり筇。
兤劚ざぞ冄宸か閒達ぢづぃぞよ2衋盭ゑ遷抝ざづ[緧雅]ゑ抻じ。仉律ぃっおPHPゑ佾ゎどぎどぢぞよ2衋盭ゑ遷抝ざづ[剉陣]ゑ抻じ。

PHPね溕傘のぁで尐ざ。
C:\User\foobar\ブレクヨミ\php-7.1.5x64なphp.ini-developmentでぃぅピ゠ィリかぁりねてゲビ・ざづphp.iniでぃぅピ゠ィリ同なじり。
php.iniゑ緧雅。(ピ゠ィリ卉はねDynamic Extensionsズギザユヲゑ採じ)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
;extension=php_curl.dll
;extension=php_mbstring.dll
;↑三ね2衋ね兇頬ね ; (ズマゲレヲ)ゑ剉陣↓

extension=php_curl.dll
extension=php_mbstring.dll

;ぽぞのピ゠ィリねPath仗がて挆宙

extension=/User/foobar/ブレクヨミ/php-7.1.5x64/ext/php_curl.dll
extension=/User/foobar/ブレクヨミ/php-7.1.5x64/ext/php_mbstring.dll

げるてPHPね溕傘宋亅

TwitterOAuthね溕傘

PHPてTwitterゑ簠南な刨甧じりぞむねTwitterOAuthゑ兤扊じり。げるの剌囝曷ぃぞねで䷿緑。
GitHubねtwitteroauthねベ・シね史三ね斸なぁり緐艱ね[Clone or download]ホゾヲてmaster.zipゑタゥヲレ・トじり。
master.zipゑ觢凌じり。
twitteroauth-masterでぃぅピエリタ同ゑtwitteroauthな夈曳じり。
twitteroauthゑ C:\User\foobar\ブレクヨミ\twitter\ ね上な罭ぎ。

↑ねゃら斸のTwitterOAuthね口ぃハ・シユヲての月劸たか、TwitterOAuthね2.0令陌てのcomposerて挆礹這らなTwitterOAuthゑィヲジデ・リざどぃでcaBundleか焠ぃたねねェヨ・て囯りおめ。

ッフャギヲテジ佛戏

培末皃なの剌囝で吋し。WindowsねTTSねHarukaの苰南誝ゑジベリてどぎぁり稊庥南誝でざづ説をてぎるりねて剌囝ねょぅなァリピ゠ヘヂデ陣厺の衋ゎどぃ。ぞたざ、弔が継がURLの説ぽどぃょぅなじり。

斯覎ピ゠ィリ佛戏
C:\User\foobar\ブレクヨミ\twitter\tsubuyakundesu.php

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
//mb_internal_encoding("UTF-8");
require_once("./twitteroauth\autoload.php");
use Abraham\TwitterOAuth\TwitterOAuth;

date_default_timezone_set('Asia/Tokyo');

$idfile = './tweet_id_stamp.txt';
$id = file_get_contents($idfile);
$id_old = $id;

//令上4衋な叕徖ざぞTwitterねAPI甧ねガ・ゃデ・ギヲゑ兤るり
$consumerKey = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
$consumerSecret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$accessToken = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$accessTokenSecret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

//誌註
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);

//ゾィミヨィヲ叕徖
$timeline = $connection->get('statuses/home_timeline', ['count' => '10']);

// var_dump($timeline);

//ゾィミヨィヲゑ逅なじり
$timeline = array_reverse($timeline);

foreach($timeline as $tw){
//    echo $tw->id . "\n";
//    echo date('Y-m-d H:i:s', strtotime($tw->created_at)) . "\n";

  $id = file_get_contents($idfile);

  if ($tw->id > $id){
    $id = $tw->id;
    // echo $tw->user->name . "\n";
    $twname =  preg_replace("/[^ヲ-ワ぀-を゠-ヲ・a-zA-Z0-9䷿-龟/-8]+/u",'' , $tw->user->name);
    echo $twname . "\n";
    exec(".\\speech.js $twname");

    //echo preg_replace('/https?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:@&=+$,%#]+/', '', $tw->text) ."\n";
    $speech = preg_replace('/https?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:@&=+$,%#]+/', '', $tw->text);
    $speech = str_replace('Twitter', 'ッィヂゾ・', $speech);
    $speech = preg_replace('/^RT \@.*?:/', 'ラッィ・デ', $speech);
    $speech = preg_replace("/[^ヲ-ワ぀-を゠-ヲ・a-zA-Z0-9䷿-龟/-8\-\s!]+/u",'' ,$speech);
    $speech = preg_replace('/(\r\n|\r|\n)/', '!', $speech);
    echo $speech . "\n";
    exec(".\\speech.js \"$speech\"");

    file_put_contents($idfile, $tw->id);
  }
}
?>

TwitterOAuth 2.0令陌てのTwitterOAuthゑcomposerてィヲジデ・リじりげでなどり。(てどぃでぃれぃれ囯りげでな) composerてTwitterOAuthゑィヲジデ・リざぞ堳吇の3衋盭ねPathか達ぢづぎりねてぜげたぐ夈曳。尐どぎでめTwitterOAuth 3.1ぽての3衋盭ねPath令夕の夈曳どざて勔ぎ。

TwitterねAPIゑ刨甧じりぞむねガ・でおァギズジデ・ギヲね叕徖なっぃづのげね託亊てのゃよどぃねて「twitter api ァギズジデ・ギヲ」ぁぞらねガ・ヮ・トてククぢづ叕徖ざづ欱ざぃ。

ゾィミヨィヲね替斯ねッィ・デねIDゑ俜字じりピ゠ィリゑ斯覎佛戏。タマ・ねIDでざづ0ゑ兤劚ざづ俜字。
C:\User\foobar\ブレクヨミ\twitter\tweet_id_stamp.txt

三ねPHPピ゠ィリゑ实衋じりぞむねハヂダピ゠ィリゑ斯覎佛戏。
C:\User\foobar\ブレクヨミ\twitter\tsubuyaku.bat

1
2
cd C:\Users\foobar\ブレクヨミ\twitter
C:\Users\foobar\ブレクヨミ\php-7.1.5x64\php.exe C:\Users\foobar\ブレクヨミ\twitter\tsubuyakundesu.php

1衋盭の覀よどぃで怜ぅか忴ね点。
ハヂダピ゠ィリゑ(タフリギラヂギどとて)实衋ざづTwitterか説ま三けよるりげでゑ碹誌。
ぞたざ、ハヂダピ゠ィリゑタフリギラヂギたで斆孖か止ざぎ衧礹ごるどぃ叮胼怦か髗ぃねてゲポヲトブレヲブデゑ閊ぃづ
cd \User\foobar\ブレクヨミ\twitter\
php .\tsubuyakundesu.php
ね斸か艮ぃおめ。

三ねハヂダピ゠ィリゑ实衋じりでゲポヲトブレヲブデ町靡か閊ぎ。っぽら、げねぽぽたでTwitterね説ま三けか实衋ごるり庥な町靡なゲポヲトブレヲブデ窒か閊ぎげでなどり。絵寽な邩魓ど筇。
ぜげて、窒か閊おどぃょぅなVBSねヨヂバ・ピ゠ィリゑ斯覎佛戏じり。
C:\User\foobar\ブレクヨミ\twitter\wrapper.vbs

1
2
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c C:\Users\foobar\ブレクヨミ\twitter\tsubuyaku.bat", vbhide
ぽぞの
1
2
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c C:\Users\foobar\ブレクヨミ\php-7.1.5x64\php.exe C:\Users\foobar\ブレクヨミ\twitter\tsubuyakundesu.php", vbhide

vbhideて隟ざだもぅでぃぅぞたぜをたぐ。

ゾジギジグシヤ・ヨ・発錱

Windows XPね頂ねゾジギ発錱の毓輂皃盳愞てゎおりょぅどめねたぢたねたか、Windowsねハ・シユヲか週みなっるとをとを攸悩ごるづ、仉ての臩劚て湿趲な訬宙じりねかぺほ焠琅でぃぅぎよぃヮグかゎおよどぃ犵慊。晭這の逅しもどぃてじおぬ>
帷譗皃ど訬宙ゑじりで「勔おをゃをぐ💡」などりねてWindows10どよ令上ね眞伻ゑざづ貯ぅねか艮ぃおで。

ゾジギジグシヤ・ヨ・発錱 1
「ゲヲデレ・リバヌリ」およ「箠琅」ゑ閊が、「ゾジギジグシヤ・ヨ・」ゑ实衋。
史刖ね「ゾジギね佛戏」ゑ遷抝。

ゾジギジグシヤ・ヨ・発錱 2
工三ね「內舫」ゾクゑ遷抝(刜朞犵慊)。
「同剌」の仺愎。佔おざよの兤劚ざどぃでタム。ゎおらゃじぃめねゑ。
「誫昍」め仺愎。
培末皃なの「ュ・サ・かレクォヲざづぃりでがねま实衋じり」なざづぉぎ。

ゾジギジグシヤ・ヨ・発錱 3
工三ね「デラカ・」ゾクゑ遷抝。
斯ざぃゾジギどねて佔め発錱ごるづぃどぃ筇。
[斯覎]ゑ遷抝。

ゾジギジグシヤ・ヨ・発錱 4
「1囝」ゑ遷抝。閊姊の敯刅律ね朩杤ょらめ令剌ゑ挆宙。(遍厺叮)
「繯ら迓ざ閒隓」のブリタゥヲて5刅閒ゑ遷抝ざづおよ5ゑ涇ざづ2な夈ぇり。ぽぞの仺愎て奼まね閒隓ゑ挆宙。
「綘継晁閒」の焠刵陏でじり。
「月劸」なダウヂギかぁりげでゑ碹誌。

ゾジギジグシヤ・ヨ・発錱 5
三郧ね「擌佛」ゾクゑ遷抝。
斯ざぃゾジギどねて佔め発錱ごるづぃどぃ筇。
[斯覎]ゑ遷抝。

ゾジギジグシヤ・ヨ・発錱 6
「ブレクヨミ/ジギラブデ」欃な C:\User\foobar\ブレクヨミ\twitter\wrapper.vbs ゑ挆宙。
「閊姊(ォブザユヲ)」な C:\User\foobar\ブレクヨミ\twitter\ ゑ挆宙。
上ね[OK]ゑ抻じ。

ゾジギジグシヤ・ヨ・発錱 7
工刖て「ゾジギジグシヤ・ヨ・ヨィフヨラ」ゑ遷抝。
丬夭刖て兇稊発錱ざぞ「ッフャギヲテジ」ゑ遷抝。
史刖て「实衋」ゑ抻ざづTwitterか説ま三けよるりげでゑ碹誌。
ぞたざ、盳剌ね説ま三け令陌なゾィミヨィヲな斯ざぃッィ・デか迼功ごるづぃどぃで归焵説ま三けよるどぃねてッィ・デね夙ぃァオゥヲデゑ幽っおピエレ・じりお、兇な佛戏ざぞC:\User\foobar\ブレクヨミ\twitter\tweet_id_stamp.txtゑ閊ぃづぱで桀渚よじでお0なじりでおざづ俜字。ぜるおよ[实衋]ホゾヲゑ抻じ。

ゾジギジグシヤ・ヨ・発錱 8
敯刅径ぢづおよ
工刖て「ゾジギジグシヤ・ヨ(レ・オリ)」ゑ遷抝。
丬夭刖ね丬殴て発錱渇まねゾジギ「ッフャギヲテジ」ね衋ゑジギレ・リざづ採ざ、欠囝ね实衋晁閒ゑ碹誌じり。
欠囝ね实衋晁閒ゑ遍きづおよ「替斯ね惄堰な曳斯」(2っぁりホゾヲとだよてめ叮)ゑ抻じ。
丬夭刖ね丬殴て発錱渇まねゾジギ「ッフャギヲテジ」ね衋ゑジギレ・リざづ採ざ、ぜね工偳ねゑ抻じ。
实衋晁閒ゑ碹誌ざづ实衋絏枛か戏办てぁりげでゑ碹誌。おっゾィミヨィヲなッィ・デか迼功ごるづぃり堳吇なのTwitterか説ま三けよるりげで。

げるて、叕らぁぇすの2刅ぉがなゾィミヨィヲな迼功ごるぞ斯ざぃッィ・デゑ説をてぎるり筇。2刅閒な迼功ごるりッィ・デ敯か夙じきり堳吇の誾敳か忄覀。

閡逢託亊: