IT技術に関する情報掲載サイト

プログラミングに関することを掲載します。

自分の声で他の言語でしゃべってくれるツール:Elevenlabs

NewsPicksの伝書鳩のコーナーで今回紹介してくれたElevenlabsっていうサービスが紹介されていて、面白いサービスだなと思い、ここでも紹介します。

 

newspicks.com

 

Elevenlabsは、Generative Voice AIです。元になる声を使って色々な声を生成してくれるようです。すごいことに発声も元の声とそっくりです。

 

elevenlabs.io

 

どういうケースで使われているかというと例えば、日本のショート映画をつくったけど、これをアメリカにも広めたいが、吹き替えをするのは手間がかかるときは、これをつかうと、英語版のショート映画をつくってくれます。

ほかには、有名人が本を出してそれのオーディオブックをつくりたいけど、本人が忙しくて作る暇がないときなんか、サンプルの音声を元につくってくれるそうです。

 

料金は、

Freeプランで、10分内の動画で10,000文字/月だったら、無料。

Starterプランで、30分内の動画で50,000文字/月だったら、$5/月。

Createrプランで、2時間内の動画で100,000文字/月だったら、$22/月。

Proプランで、10時間内の動画で500,000文字/月だったら、$99/月。

Scaleプランで、40時間内の動画で2,000,000文字/月だったら、$330/月。

となります。結構精度もよいので、オトクな値段で、サブスクなので、ちょっとだけ使いたいときにも使いやすいかも。

 

elevenlabs.io

 

今度ためしてみようかな。

dockerでviが使えないときの対応方法

dockerでLAMP環境を構築したあと、sshでコンテナにログインしたあと、viを使おうとしたら、以下のエラーがでた

bash: vi: command not found

sshの仕方がいけないのかといろいろ調べてみたのですが、

単純に、viがインストールされていないだけだった。

apt install vim

忘れないように、Dockerfileに記載するようにしようかな。

学習不安を解消するためのLaravel学習サイト紹介

Laravelを勉強するのには、いろいろなプログやUdemyを参考に独学で頑張って勉強している人が多いかもしれませんが、やはり、有料でしっかり管理しているところのほうが、質がいいはず。海外で、英語のサイトになりますが、Laravel dailyというサイトをみつけたので、ご紹介しときます。自分自身で、Laravelを勉強するのには、不安な人にとっては、いいかもしれません。

 

laraveldaily.com

 

Larvel11 + Vue + Viteでの構築の仕方などを掲載しております。 

費用は、月額29ドル。日本円だと大体4500円ぐらいです。これでLaravelをつかえるようになるのだったら、安いかもしれませんね。

npmセキュリティの脆弱性について

こんな情報があるそうです。

www.publickey1.jp

 

Jqueryができ、Node.jsができ、昔に比べて格段とjavascriptと楽になってきましたが、今、一番、javascriptのアプリケーションやパッケージ管理につかわれているだろうというnpmにもバグをかかえているそうです。バクの内容としては、npmパッケージのマニフェストがtarにあるものとは、同期されていないらしくて必ず一緒だと保証されていないそうです。なんで、書かれているものと中身がちがうってこともありえて、マルウェアなどを埋め込まれる可能性があるそうです。

そこで、vltがつくってしまおうって話みたいです。

 

でもいつも思うのですが、こんなにいろいろなものができると何をつかっていいかという選択しにいつもこまってしまいます。

 

脆弱性報告: xz Utilityの影響と対策

xz Utilityで脆弱性が見つかったそうです。

www.helpnetsecurity.com

 

影響範囲とかは

www.helpnetsecurity.com

だそうです。

xz自体は、Linuxで使われている汎用的なデータ形式ですが、zipやgzに比べるとあまりつかわれていない印象があります。

このxzの脆弱性がどんな悪さをするかというと、影響を受けたライブラリをリンクしているsshdを使用していた場合、liblzmaの実装が改ざんされ、任意のソフトウエアを利用できるようになり、結果として外部から不正アクセスをされる恐れがあるそうです。

Amazon Linuxとかは、影響ないそうですが、Red HatUbuntuなどは影響あるようなので、サーバ運用している方は、参考にしてください。

 

Python関数の基本理解をしてみました

pythonの関数について。

自分で勉強で気になる部分だけピックアップして、忘れないように記事として起こしておこう。だから、ここに記載されていないpythonの関数の機能があるので、ご注意ください

 

ラムダ式(lambda)

ラムダ式は、一箇所とかしか使わない使い捨てのような関数を定義するときに使います。式として使われるので、関数の引数として使うことおができます。

myfunc = lambda a,b: x+y

print(myfunc(3,6))    #=> 9

 

イテレータ(iterator)

これがあまり理解できない。イテレータとは、次の要素にアクセスすることを繰り返すインターフェイスのことだそうです。配列のようなデータ構造の要素を順に処理をしていく繰り返し処理を簡単に記述できる構文だそうです。見える化かな。

 

class MyR:
      def __init__(self, max):
      self._max = max

      def __iter__(self):
      self._count = 0
      return self

      def __next__(self):
      result = self._count
      if result >= self._max:
      raise StopIteration
      self._count += 1
      return result

for n in MyR(3):
      print(n) #=> 0, 1, 2

デコレータ(@)

これは便利。関数を実行する前後に特殊な処理を実行したい場合に用いる。デコレータをうまく使うと同じような関数を複数つくらなくてよくなるはず。

def mydecolater(func):

    def wrapper():

        print("go")

        func()

        print("end")

    return wrapper

 

@mydecolater

def hello():

    print("hello")

hello()    #-> go,hellp,end

ほかにも、ジェネレータなどの機能もあるので、調べてみてくださいね

 

Python入門とビット演算

時間があるので、pythonの勉強でもしようかと思い、

とほほのPython入門 - とほほのWWW入門

で、勉強してたら、ビット演算子というものがでてきました。長年プログラミングをしていますが、ビット演算子は、まったく使ったことがないので、この機会にちょっと勉強してみました。

まずは、基本であるビットとは

コンピュータは、実は、ON/OFFの繰り返しでできており、そのON/OFFのスイッチをビットと読んでおり、スイッチ一個を1ビットとよびます。ちなみに、8ビットが1バイトです。表記するときは、0000000のように表し、右側から0ビット目、1ビット目って数えます。

 

次に、ビット演算とは

スイッチのON/OFFの切り替えを制御するのがビット演算です。大体8の倍数個、つまりバイト単位でまとめて行います。

 

それでは、演算子についてです。

ちょうど、pythonを勉強しているので、例は、pythonでやります。

演算子一覧

~a       # ビット反転
a & b   # AND:論理積
a | b     # OR:論理和  
a ^ b    # XOR:排他的論理和
a << b  # b ビット左シフト
a >> b  # B ビット右シフト

&(AND)

2つを比較し、どちらも1なら1、それ以外なら0を返します。フラグをビット管理しているときに、そのフラグが立っているかを調べます。

a&b=c

a 11110000

b 10101010

c 10100000

|(OR)

2つを比較して、どちらかが1なら1、それ以外なら0を返します。フラグをビット管理しているときに、そのフラグを立てるときなどにつかいます。

a|b=c

a 11110000

b 10101010

c 11111010

~(NOT)

すべて逆転させます。1を0に、0を1に変えます。真逆の状態にしたいときに使います。

~a=c

a 11110000

c 00001111

^(XOR)

2つを比較して、どちら片方だけ1ならば1、どちらも0またはどちらも1の場合は、0を返します。どこが違うか調べるときなどで使います。

a^b=c

a 11110000

b 10101010

c 01011010

>>(右ビットシフト) >>(左ビットシフト)

>>は、ON/OFFの状態を右にずらします。
<<は、ON/OFFの状態を左にずらします。
ずらしたことによるできた空白には0がはいり、はみ出した分は消えます。このはみだして消えたことを、オーバーフローといいます。ループを使ってビット操作するときなどに使えます。


a >> 1 =c

a 11110000

c 01111000


a << 1 =c

a 11110000

c 1110000

 

以上です。

 

通常のプログラミングでは、ビット演算は使わなくてもいいですが、メモリの節約をするときなどにつかいます。例えば、一つの変数で複数のフラグを管理する場合です。もし、使える機会があったらつかってみてください