質問編集履歴
2
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
pythonで
|
1
|
+
pythonで音声認識&合成
|
body
CHANGED
@@ -1,26 +1,13 @@
|
|
1
|
+
python をつかって、Juliusで音声認識→pykakasiでローマ字変換→音声合成ICが発話というシステムです。
|
1
|
-
|
2
|
+
エラーがないのにうまく行きませんでした。
|
2
3
|
|
3
|
-
Raspberry Pi4を用いて音声合成をしようとしています。使用言語はpythonです。
|
4
|
-
システムの流れとしては、Juliusで日本語を音声認識し、認識した日本語をpykakasiでローマ字に変換します。その変換されたローマ字を、音声合成ICに入力し、発話させる。という流れです。
|
5
|
-
|
6
|
-
「女性」とマイクに話しかければ、女性の声のIC(0x2e)がこんにちはと発音します。
|
7
|
-
それ以外の言葉がマイクに入力されたとき、認識された言葉をそのままICが話すというプログラムを書いたつもりです。
|
8
|
-
|
9
|
-
プログラムにエラーは発生せず、Juliusの音声認識からpykakasiでのローマ字変換には成功しています。
|
10
|
-
その後の、音声合成ICを発話させることができません。おそらく、値を渡すことがうまくいっていないことが原因ではないかと考えています。
|
11
|
-
|
12
|
-
|
13
|
-
### 該当のソースコード
|
14
|
-
|
15
|
-
```python
|
16
|
-
|
17
4
|
import socket
|
18
5
|
import time
|
19
6
|
import pykakasi
|
20
7
|
import RPi.GPIO as GPIO
|
21
8
|
import smbus
|
22
9
|
|
23
|
-
HOST = '
|
10
|
+
HOST = '172.26.102.216' # juliusサーバーのIPアドレス
|
24
11
|
PORT = 10500 # juliusサーバーの待ち受けポート
|
25
12
|
DATESIZE = 1024 # 受信データバイト数
|
26
13
|
|
@@ -30,7 +17,21 @@
|
|
30
17
|
bus = smbus.SMBus(1)
|
31
18
|
|
32
19
|
class Julius:
|
20
|
+
|
21
|
+
def ATP3011_send_cmd5(cmd):
|
22
|
+
cmd0 = ord(cmd[0])
|
23
|
+
cmd1 = []
|
24
|
+
for c in cmd[1:]:
|
25
|
+
cmd1.append(ord(c))
|
26
|
+
bus.write_i2c_block_data(0x2f,cmd0,cmd1)
|
33
27
|
|
28
|
+
def ATP3011_send_cmd6(cmd):
|
29
|
+
cmd0 = ord(cmd[0])
|
30
|
+
cmd1 = []
|
31
|
+
for c in cmd[1:]:
|
32
|
+
cmd1.append(ord(c))
|
33
|
+
bus.write_i2c_block_data(0x2e,cmd0,cmd1)
|
34
|
+
|
34
35
|
def __init__(self):
|
35
36
|
|
36
37
|
self.sock = None
|
@@ -98,7 +99,7 @@
|
|
98
99
|
|
99
100
|
else:
|
100
101
|
cmd = Romaji() +"\r"
|
101
|
-
ATP3011_send_cmd5(cmd)
|
102
|
+
ATP3011_send_cmd5(cmd) #ICniローマ字をwatasu
|
102
103
|
|
103
104
|
fin_flag = False
|
104
105
|
strTemp = ""
|
@@ -108,12 +109,6 @@
|
|
108
109
|
julius = Julius()
|
109
110
|
julius.run()
|
110
111
|
|
111
|
-
```
|
112
112
|
|
113
|
-
|
113
|
+
追記:
|
114
|
-
|
115
|
-
|
114
|
+
一旦このプログラムは無かったことにし、1から作り直している最中です。
|
116
|
-
|
117
|
-
### 補足情報(FW/ツールのバージョンなど)
|
118
|
-
python3.7.3
|
119
|
-
使用している音声合成ICはATP3011
|
1
title
CHANGED
File without changes
|
body
CHANGED
@@ -30,21 +30,7 @@
|
|
30
30
|
bus = smbus.SMBus(1)
|
31
31
|
|
32
32
|
class Julius:
|
33
|
-
|
34
|
-
def ATP3011_send_cmd5(cmd):
|
35
|
-
cmd0 = ord(cmd[0])
|
36
|
-
cmd1 = []
|
37
|
-
for c in cmd[1:]:
|
38
|
-
cmd1.append(ord(c))
|
39
|
-
bus.write_i2c_block_data(0x2f,cmd0,cmd1)
|
40
33
|
|
41
|
-
def ATP3011_send_cmd6(cmd):
|
42
|
-
cmd0 = ord(cmd[0])
|
43
|
-
cmd1 = []
|
44
|
-
for c in cmd[1:]:
|
45
|
-
cmd1.append(ord(c))
|
46
|
-
bus.write_i2c_block_data(0x2e,cmd0,cmd1)
|
47
|
-
|
48
34
|
def __init__(self):
|
49
35
|
|
50
36
|
self.sock = None
|