30822
Raspberry piで電話をかけてwavファイルを流そうとしているのですが、どうしても雑音しか聞こえてきません。ご教授願います。

```

    import serial
    import wave
    
    ser = serial.Serial('/dev/ttyACM0', 115200, timeout=3)
    
    ser.write("atz\r\n")
    print(ser.read(16))
    ser.write("at+fclass=8\r\n")
    print(ser.read(16))
    ser.write("atdt********\r\n")
    while True:
            res = ser.readline()
            print(res)
            if res == "OK\r\n":
                    break
    ser.write("AT+VTX\r\n")
    while True:
            res = ser.readline()
            print(res)
            if res == "CONNECT\r\n":
                    break
    musica = wave.open('/home/pi/testvoice.wav', 'r')
    para = False
    while para == False:
            vetor = []
            for kl in range(0,1024):
                    quadro = ""
                    quadro = musica.readframes(1)
                    if quadro == "":
                            para = True
                            break
                    vetor.append(quadro)
            ser.write("".join(vetor))
    
```
CC BY-SA 3.0
2016-12-01T00:24:56.940
30801
2016-12-02T01:30:22.700
2016-12-01T03:42:23.737
19592
19592
question
python raspberry-pi
Raspberry piのPyserialで音声が正常に流せない
モデムの機能について誤解されていると思います。

ボイスモデム(音声モデム)は、次の３つの機能を備えています。  
１）デジタル信号(0と1から成る並び）を、値を表す音に変える(変調：MOdulation)機能  
（デジタル信号はシリアルライン(USB)からモデムに入り、音は電話回線に出る）  
２）値を表す音を、デジタル信号に変える（復調：DEModulation)機能  
（音は電話回線からモデム入り、デジタル信号はシリアルライン(USB)から出る）  
３）ダイヤル、接続、送信、受信、切断などの電話回線操作機能

音で値を表す方法には高さが違う音を使う（０なら高い音、１なら低い音）とか、高音域の４種類の音と低音域の４種類の音を組み合わせて使う（電話のトーンダイヤルで使われている方式）とか様々な方式があります。そうした音はピコピコジャァとか、ピポパとか、人には雑音としか聞こえません。

１）のMOdulationと２）のDEModulationの機能を備える事から、この２語を合成したMODEM(モデム)と呼ばれます。

Modemでデータを送る場合、２つのマシンのそれぞれにModemを接続し、Modem間は電話回線で接続します。（下図）

Rapsberry --(Modem) ================= (Modem) -- PC

\--の部分はデジタル信号でやりとりされる部分、==の部分は音声信号でやりとりされる部分です。  
このようにしてRapsberryにあるデジタルデータ(WAVファイル）を別のPCに送ることができます(PCでは、モデムからの信号を受信してファイルに保存するようなプログラムを実行させます)。  
WAVファイルを受信したPCは、WAVファイルを再生する音楽アプリなどで使って音にする事が出来る訳です。

質問者は、受信するのにModemではなく携帯電話を使ったので、音で表されたデジタル信号を耳にすることになりました。  
それが雑音にしか聞こえないというのは、上で説明した通りです。

ボイス(音声)モデムは音でデータをやりとりするという意味で「ボイス」あるいは「音声」という語が使われていますが、デジタルデータを音声に変換する機能を持っている訳ではありません。
CC BY-SA 3.0
2016-12-02T01:30:22.700
30822
2016-12-02T01:30:22.700
217
30801
answer