Splatoon2 プレイ環境について
ひょんなことから、Amazonアソシエイトに登録したのでAmazonリンクの貼り方練習含めて
プレイ環境を書いてみる。
使っているヘッドセット
SteelSeries Arctis Pro + Game DAC
ミキサー付きのヘッドセットで、5.1ch対応。
残念ながらSwitchの5.1ch には対応していないことが
買った後にわかった。
PS4なら5.1chが楽しめるらしい。
ミキサーがついているので、Discordのボイチャとプレイ音は簡単にミックスできる。
あと、メガネをつけていても痛くならないのがすごい良かった。
でも Switch で使うためには HDMIスプリッタとHDMIと光ケーブルの変換器が必要。
HDMIスプリッタ
変換器
キャプボ
AVerMedia Live Gamer Portable AVT-C875
とりあえずで買ってみたやつ。
720p でしか録画できなかったり、30FPSでしか録画できなかったりするけど
やりたいことは一通りできる感じ。
もう1ランク上のを買えばよかったと少し後悔。
モニターはもう生産停止みたいなので、省略。
こんな感じです。何かの参考になれば。
Amazon Polly を使って読み上げdiscord botを作った話(4)
ハマったことの解決策など。
動作環境はCentOS6
Q.discord.js でエラーが出て動かない
A.Node.jsのバージョンが低いとでる。
NVMとかで最新にすると動く。
Q.fffmpeg のエラーが出る。
A.fffmpegをyumとかで入れる。
Q.node-opus が入らない。
A.gcc が古いとなる。
下記ページを参考に新しめのを入れる
thr3a.hatenablog.com
これで晴れて動かすことができますよ。
やったね。
Amazon Polly を使って読み上げdiscord botを作った話(3)
Amazon Polly を使って読み上げdiscord botを作った話(2) - やよいの日記
の続き。
いよいよ読み上げ部分の作成。
その前に、AWSサービスに登録して、IAMユーザーでAmazon Pollyのユーザーを作っとく。
const AWS = require('aws-sdk'); const Stream = require('stream'); const Polly = new AWS.Polly({ signatureVersion: 'v4', region: 'us-east-2', accessKeyId: 'IAMユーザーのアクセスキー', secretAccessKey: 'IAMユーザーのシークレットキー' }); if (voice_ch) { if (message.channel.name != text_ch.name) { return; } if (message.content) { let text = message.content; let params = { 'Text': text, 'OutputFormat': 'mp3', 'VoiceId': 'Mizuki'}; Polly.synthesizeSpeech(params, (err, data) => { if (err) { console.log(err.code) } else if (data) { if (data.AudioStream instanceof Buffer) { let buffer_stream = new Stream.PassThrough(); buffer_stream.end(data.AudioStream); conn.play(buffer_stream); } } }); } }
Polly.synthesizeSpeech の部分が音声を取得するところ。
取得した音声データはdata.AudioStreamに入っているけど、そのままじゃ使えないので
Stream.PassThrough をつかってリーダブルバッファーに変換してあげる。
これでとりあえず音声を流すことができました。パチパチ。
でも実際に流してみるとたぶん ffmpeg のエラーが出てうまく流せないと思う。
その辺はまた後日解説いたします。
Amazon Polly を使って読み上げdiscord botを作った話(2)
Amazon Polly を使って読み上げdiscord botを作った話(1) - やよいの日記
の続き
VCに参加するところまではできたので、次は離脱を作る。
if (voice_ch) { if (message.channel.name != text_ch.name) { return; } // VCチャンネルの切断 if (message.content === '!!e') { let text = 'またねー'; text_ch.send(text) .then(message => console.log(`Sent message: ${text}`)) .catch(console.error); voice_ch.leave(); voice_ch = undefined; text_ch = undefined; conn = undefined; return; } }
こんな感じ。
voice_ch.leave() でVCから抜けられる。
VCに入っていて、(voice_ch が undefined ではないとき)、 "!!e" コマンドを受けたときに
動作するようにしてある。
各種チャンネルの変数はこのタイミングでundefinedにしておく。(後々のため)
これでVCに出たり入ったりが自由にできるようになりました。
明日はメインの読み上げ部分やります。
Amazon Polly を使って読み上げdiscord botを作った話(1)
Amazon Polly という AWS のサービスが日本語読み上げしてくれるらしい。
と聞いて、node.jsで頑張って作ってみた。
まずは discord 側、VCに入っている人に呼ばれたらその人のところに行く処理。
const Discord = require('discord.js'); const client = new Discord.Client(); const token = "botのトークン"; client.on('ready', () => { console.log('ready...'); }); let text_ch; let voice_ch; let conn; client.on('message', message => { // VCチャンネルの召喚 if (message.content === '!!s') { text_ch = message.channel; voice_ch = message.member.voice.channel; let text = ''; if (voice_ch == undefined) { text = 'VCに入ってから使ってね'; text_ch.send(text) .then(message => console.log(`Sent message: ${text}`)) .catch(console.error); return; } voice_ch.join() .then(connection =>{ conn = connection; }) .catch(console.error); text = 'きたよー'; text_ch.send(text) .then(message => console.log(`Sent message: ${text}`)) .catch(console.error); return; } }); client.login(token);
こんな感じで、"!!s"って呼ばれたVCに入れる。
"!!s"コマンドを打ったテキストチャンネルを保存しているのは、読み上げるときに別のテキストチャンネルを読まなくするため。
とりあえず今日はここまで。