AWSメモ(VPCエンドポイント集約)
VPCエンドポイントの課金は、時間課金と使用量課金の2つになる(=データ転送がなくても課金される)
そして、アベイラビリティゾーンごとに課金される。
Pricing Calculatorより(東京リージョン)
1時間あたり「0.014 USD」
ということで、VPCエンドポイントを集約してみる。
下記2つのサービスを使用する。
- VPCピアリング
- Route53 PrivateHostedZone
環境としては下図のとおり。
VPCピアリングに関しては、同一AZであればデータ転送が無料になる。
2021 年 5 月 1 日より、VPC ピアリング接続経由で 1 つのアベイラビリティーゾーン (AZ) 内で行われるすべてのデータ転送が無料になります。
VPC ピアリング接続を経由して複数のアベイラビリティーゾーンにまたがって行われるデータ転送に対しては、引き続きリージョン内の標準のデータ転送料金が適用されます。
Amazon VPC が VPC ピアリングの料金変更を発表
Route53 Privateホストゾーンに関しては、VPCエンドポイントごとに作成する。
const zone_ssm = new route53.PrivateHostedZone(this, 'HostedZone_SSM', { zoneName: 'ssm.ap-northeast-1.amazonaws.com', vpc: vpc_shared, // VPCendpoint is created in vpc_shared });
ホストゾーンにAレコードを追加する。
const vpce_ssm = new ec2.InterfaceVpcEndpoint(this, 'vpc_endpoint_ssm', { vpc: vpc_shared, service: ec2.InterfaceVpcEndpointAwsService.SSM, ... }); new route53.ARecord(this, "AliasRecord_ssm", { zone: zone_ssm, target: route53.RecordTarget.fromAlias(new route53targets.InterfaceVpcEndpointTarget(vpce_ssm)), });
C:\Users\Administrator>ipconfig Windows IP 構成 イーサネット アダプター イーサネット: 接続固有の DNS サフィックス . . . . .: ap-northeast-1.compute.internal リンクローカル IPv6 アドレス. . . . .: fe80::71de:591d:b0f1:81b8%6 IPv4 アドレス . . . . . . . . . . . .: 192.168.2.122 サブネット マスク . . . . . . . . . .: 255.255.255.0 デフォルト ゲートウェイ . . . . . . .: 192.168.2.1
VPCエンドポイントを名前解決してみる。
.2アドレスによる解決
C:\Users\Administrator>nslookup ssm.ap-northeast-1.amazonaws.com サーバー: ip-192-168-2-2.ap-northeast-1.compute.internal Address: 192.168.2.2 権限のない回答: 名前: ssm.ap-northeast-1.amazonaws.com Address: 10.100.0.66
AmazonProviedDNSによる解決
C:\Users\Administrator>nslookup ssm.ap-northeast-1.amazonaws.com 169.254.169.253 サーバー: UnKnown Address: 169.254.169.253 権限のない回答: 名前: ssm.ap-northeast-1.amazonaws.com Address: 10.100.0.66
AmazonProvidedDNS は Amazon Route 53 Resolver サーバーです。
...
DNS サーバーは、VPC の特定のサブネットまたはアベイラビリティーゾーン内に存在しません。
文字列 AmazonProvidedDNS は、169.254.169.253 (および VPC IPv4 ネットワークの範囲に 2 をプラスした値のリザーブド IP アドレスで) および fd00:ec2::253 で実行する DNS サーバーにマッピングします。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_DHCP_Options.html#AmazonDNS
通信相手の確認。
AmazonProviedDNSは出てこない。
C:\Users\Administrator>arp -a インターフェイス: 192.168.2.122 --- 0x6 インターネット アドレス 物理アドレス 種類 169.254.169.123 06-a2-d7-b5-c1-b3 動的 # NTP Server 192.168.2.1 06-a2-d7-b5-c1-b3 動的 # Default GW 192.168.2.2 06-a2-d7-b5-c1-b3 動的 # DNS Server 192.168.2.255 ff-ff-ff-ff-ff-ff 静的 224.0.0.22 01-00-5e-00-00-16 静的 224.0.0.251 01-00-5e-00-00-fb 静的 224.0.0.252 01-00-5e-00-00-fc 静的 255.255.255.255 ff-ff-ff-ff-ff-ff 静的
AWSメモ(HTTPS 通信で AWS EC2 へのリモートデスクトップ接続)
「RDP over HTTPS」に関するメモ。
「Systems Manager」を利用することで、パブリックなIPアドレスを持たなくても接続できる。
今回、試したAWS上の環境は下図のとおり。
エンドポイントに関しては、VPCのAZ数を「2」にしたことで各AZに自動生成された
CDKを使って、CloudFormation スタックとしてAWSにデプロイした。
VPCエンドポイントして、下記を追加。
- com.amazonaws.[region].ssm
- com.amazonaws.[region].ssmmessages
- com.amazonaws.[region].ec2messages
vpc.addInterfaceEndpoint("ssm-endpoint", { service: ec2.InterfaceVpcEndpointAwsService.SSM }); vpc.addInterfaceEndpoint("ssm-messages-endpoint", { service: ec2.InterfaceVpcEndpointAwsService.SSM_MESSAGES }); vpc.addInterfaceEndpoint("ec2-messages-endpoint", { service: ec2.InterfaceVpcEndpointAwsService.EC2_MESSAGES });
EC2に関しては、下記のAMIを使用。
machineImage: ec2.MachineImage.latestWindows( ec2.WindowsVersion.WINDOWS_SERVER_2019_JAPANESE_FULL_BASE ),
SecurityGroupは下記のとおり。インバウンドルールでRDP「ポート3389」をオープンにしていない。
セッションマネージャ経由での接続はOK
アクセス元となるクライアント端末で、セッション開始&ポート転送。
% aws ssm start-session --target i-0355a33eb8da08120 --document-name AWS-StartPortForwardingSession --parameters "portNumber=3389, localPortNumber=13389"
Starting session with SessionId: <IAM Username>-0b524196744cd5ce7 Port 13389 opened for sessionId <IAM Username>-0b524196744cd5ce7. Waiting for connections...
RDPクライアント(ここでは、「Remmina」を使用)から「localhost:13389」
ドメインは入れなくてよい。
接続できた。
FinTechを考える(その1)
お金とは何かを考えてみる
まずイメージするのは紙幣やコイン。
それらは、世の中にどれほど回っているのだろうか。
マネタリーベース統計によると、2021年8月末の時点で、市中に出回っているお金(通貨流通高)はおおよそ「122兆円」(紙幣が「117兆円」、貨幣が「5兆円」)
マネタリーベースとは、「日本銀行が供給する通貨」のことです。
具体的には、市中に出回っているお金である流通現金(「日本銀行券発行高」+「貨幣流通高」)と「日銀当座預金」の合計値です。
マネタリーベースの解説 : 日本銀行 Bank of Japan
下図は2010年からの通貨流通高の推移。10年前の2012年はおおよそ「85兆円」で、「40兆円」近く増えたことになる。
1980年まで遡ってみると、おおよそ「20兆円」だった流通高が40年で6倍になり、「100兆円」ほど増えた計算になる。
2021年第2四半期の「資金循環(速報)」によると、
https://www.boj.or.jp/statistics/sj/sjexp.pdf
- 家計の金融資産は「1,992兆円」(うち、「現金・預金」が「1,072兆円」)
- 企業(民間非金融)の金融資産は「1,226兆円」(うち、「現金・預金」が「316兆円」)
ということになっている。
「誰が現金を保有しているか」の保有内訳は別の資料をあたる必要がありそうだが、
「預金」は、「現金」の10倍以上、存在しているということになる。
また、「電子マネー」についても少し。
あらかじめ現金をチャージする「プリペイド式」の場合、チャージ等で払われる「現金」については「電子決済等代行業を営む企業」の手持ちになり、ユーザ(チャージした側)もある意味「預金」に変えているといえる。
また、「電子マネー」を支払い方法とする店舗に関しても、「預金」という形で振り込まれる形なので、ここで「現金」が姿を消している。
「電子マネー」の普及に伴って「現金の流通高」が減っていきそうなものだが、「現金の流通高」は増え続けている。
"「お金」とは何か?"と考えた時、お札やコインとして存在するもの額よりも、はるかに多くの数値が積み上がっており、数字として存在するものでしかないことを感ずる。
(続く)
音声合成メモ(AutoVC)
「AutoVC」を試してみる。
GitHub - auspicious3000/autovc: AutoVC: Zero-Shot Voice Style Transfer with Only Autoencoder Loss
AUTOVC is a many-to-many non-parallel voice conversion framework.
モチベーション
- 「SpeechSplit」を試してみようとして、デモの実装で使われていたから
- Zero-Shotの実力を知りたい(英語のデモはあるが、日本語だとどうか?)
Modelのパラメータは学習済みのものを使う。
アウトプットはMel-Spectrograms
G = model_vc.Generator(32, 256, 512, 32).eval().to(device) g_checkpoint = torch.load('autovc.ckpt', map_location='cuda:0') G.load_state_dict(g_checkpoint['model']) _, x_identic_psnt, _ = G(uttr_org, # ソース音声(Mel) emb_org, # 話者Embed (ソース) emb_tgt # 話者Embed (ターゲット) ) uttr_tgt = x_identic_psnt[0, 0, :-len_pad, :].cpu().numpy() # 変換音声(Mel)
これをVocoder(今回はWaveNet)で音声に変換する。
試してみる(その1)
ATR503の発話音声を、綾波レイの音声に変換してみる。
ターゲット音声となる"綾波音声"データは下記を使用させていただいた。
Scyclone Demo Page
ソース音声(ATR503)
ターゲット音声(話者Embedの生成に使用)
試してみる(その3)
話者「p256」のEmbedで試してみた結果。
(wavファイルが公開されていないが、おそらく男性と思われる)
変換結果
話者Embedを適切に作れれば、求める音声に変換できるかもしれない。
MakeItTalkその1
「MakeItTalk」を試してみる。
音声ファイルに合わせて、口パク動画を生成してくれるもので、インプットとなる音声ファイルも画像も「1つだけ」でよいのがすごい。
実際に生成された口パク動画のデモ。
多少、画像の精度が落ちているようだが、音声にマッチした動きになっている。
cedro3.com
上記サイトのデモ画像を使わせていただいたが、真正面を向いていなくても動くし、まばたきもする。
声のボリュームに合わせて、口の大きさも変わる。
これを使えば、映像やアニメの作成がラクになると思われる。
どのような技術が使われているかを見てみる。
githubの要約情報の抜粋。
our method first disentangles the content and speaker information in the input audio signal.
The audio content robustly controls the motion of lips and nearby facial regions, while the speaker information determines the specifics of facial expressions and the rest of the talking-head dynamics.
"content"(話の内容)から"唇の動き"を求めて、"speaker information"から"顔のパーツの動き"を求める模様。
(後半の内容はおそらく、声の大きさや早さのことと思われる)
"speaker infomation"というのがResemblyzerを使った256次元の特徴量抽出。
# audio embedding from thirdparty.resemblyer_util.speaker_emb import get_spk_emb me, ae = get_spk_emb('<audio file>') # Embedding dim: 256 # --> me: embeds(MEAN), (256, ) # --> ae: embeds(ALL), (batch_size, 256) au_emb.append(me.reshape(-1))
そして、AUTOVCを使った声質変換。
(ここでは、オバマ氏の声質に変換している)
from src.autovc.AutoVC_mel_Convertor_retrain_version import AutoVC_mel_Convertor c = AutoVC_mel_Convertor('examples') au_data_i = c.convert_single_wav_to_autovc_input(audio_filename='<audio file>', autovc_model_path='ckpt_autovc.pth')
音声から、landmark情報を求める。
(landmarkについては、下記を参照)
work-in-progress.hatenablog.com
''' STEP 4: RUN audio -> landmark network''' from src.approaches.train_audio2landmark import Audio2landmark_model model = Audio2landmark_model(opt_parser, jpg_shape=shape_3d) model.test(au_emb=au_emb) # <-- input: landmark fake placeholder # examples/dump/random_val_fl.pickle # random_val_au.pickle # random_val_gaze.pickle (rot_trans/rot_quat/anchor_t_shape) # --> output: landmark network as TEXT # examples/pred_fls_<video_name>_<audio_embed_key>.txt
landmark情報をもとに、イメージを生成する。
''' STEP 6: Imag2image translation ''' model = Image_translation_block(opt_parser, single_test=True) with torch.no_grad(): model.single_test(jpg=img, fls=fl, # landmark network(de-normalized) filename=fls[i], prefix=opt_parser.jpg.split('.')[0])
次回に続く。
日銀のEFT買い入れを可視化してみる(2021年4月9日までのデータ)
日銀によるETF購入の方針が変わる。
日銀の黒田東彦総裁は22日、参院・財政金融委員会で、上場投資信託(ETF)の買い入れ対象をTOPIX連動型のみに変更したことについて「個別銘柄に偏った影響ができるだけ生じないように、指数構成銘柄が最も多いTOPIX連動型のみにした」と説明した。
野村アセットマネジメントが運用するETF銘柄(日銀の買付対象)を見てみる。
NEXT FUNDS TOPIX連動型上場投信(1306) | NEXT FUNDS
「組入全銘柄情報」のエクセルを開くと、「2187」銘柄。
4月に入ってからの買入れは無し。
この1年間、日経平均株価は下降局面において日銀によるETF買入れに支えられていたことがよく分かる。
(下記で公開)
https://analytics.katakanadojo.tokyo/d/WtlmSAaWz/nikkei?viewPanel=2&orgId=1&from=now-13M&to=now