翻訳APIの無料枠あるし、応用すれば自動で人狼の再翻訳村とかできるんじゃね?という思いつきで使ってみた
2022/5現在、月200万文字まで無料っぽい。
https://azure.microsoft.com/ja-jp/free/
ここからアカウント作成
登録完了したらクイックスタートセンターを開く
上部検索でTranslatorで検索して「Cognitive Services | Translator」を開く
いい感じに登録してキーを確認
Microsoft Translator APIを使ってみた - Qiita
Microsoft Azure Cognitive Services テキスト翻訳とは - Azure Cognitive Services | Microsoft Docs
このあたりを参考に叩けばok
情報量なさすぎるけどそのくらい簡単にできたよ、ということで。
WOLF MANSIONで翻訳者の能力を受けると、
発言した内容をランダム言語に翻訳→再度日本語訳して発言されるようにできた。
全員デフォでこの状態になる「再翻訳村」もできるなぁと思ったのだけど、
月200万文字までだとワンチャン超えそうだなと思ったので一旦封印。
あと、翻訳精度が高すぎて、昔と比べてあまり面白い文章に変わらないという難点が。
(翻訳精度高いのはいいことなんだけども)
おまけのざっくりKotlinコード
private fun fromJa(str: String, language: String): String {
val builder = UriComponentsBuilder.fromUriString(baseUrl)
val uri = builder.queryParam("api-version", "3.0")
.queryParam("from", "ja")
.queryParam("to", language)
.toUriString()
return call(uri, str)
}
private fun toJa(str: String, language: String): String {
val builder = UriComponentsBuilder.fromUriString(baseUrl)
val uri = builder.queryParam("api-version", "3.0")
.queryParam("from", language)
.queryParam("to", "ja-Jpan")
.toUriString()
return call(uri, str)
}
private fun call(uri: String, str: String): String {
val requestEntity = RequestEntity
.post(URI(uri))
.header("Ocp-Apim-Subscription-Key", key)
.header("Ocp-Apim-Subscription-Region", "japaneast")
.header("Content-Type", "application/json; charset=UTF-8")
.body(listOf(TranslatorBody(str)))
val restTemplate = RestTemplate()
val response = restTemplate.exchange(requestEntity, Array<TranslatorResponse>::class.java)
return response.body?.firstOrNull()?.translations?.firstOrNull()?.text ?: str
}
data class TranslatorBody(
val Text: String
)
@JsonIgnoreProperties(ignoreUnknown = true)
data class TranslatorResponse(
val translations: List<TranslatorResponseContent>
) {
@JsonIgnoreProperties(ignoreUnknown = true)
data class TranslatorResponseContent(
val text: String
)
}