質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

317閲覧

[Python]APIで取得したデータを喋らせたい

mmeoo

総合スコア8

Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

1グッド

0クリップ

投稿2018/02/16 05:30

編集2018/02/16 09:18

前提・実現したいこと

C,Java経験のみのPython初心者です。現在Pythonでプログラムを書く必要があり書いています。
https://qiita.com/kkoba84/items/b828229c374a249965a9
https://tool-lab.com/make/raspberrypi-startup-28/

上記のサイトをもとに天気予報をAPIで取得してOpenjtalkで喋らせるプログラムを書いています。

発生している問題・エラーメッセージ

音声はでるのですがaとしか発音していません。単純に上のaが代入されてないからだと考えますが色々と試したのですが治すことができず質問しました。

エラーメッセージ

### 該当のソースコード コード import subprocess from datetime import datetime import api import shlex import json, urllib2 def jtalk(t): open_jtalk=['open_jtalk'] mech=['-x','/var/lib/mecab/dic/open-jtalk/naist-jdic'] htsvoice=['-m','/usr/share/hts-voice/mei/mei_normal.htsvoice'] speed=['-r','1.0'] outwav=['-ow','open_jtalk.wav'] cmd=open_jtalk+mech+htsvoice+speed+outwav c = subprocess.Popen(cmd,stdin=subprocess.PIPE) c.stdin.write(t) c.stdin.close() c.wait() aplay = ['aplay','-q','open_jtalk.wav'] wr = subprocess.Popen(aplay) city = "140010" url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=%s' % city try: response = urllib2.urlopen(url) weather = json.loads(response.read()) a = weather['title'] + weather['forecasts'][0]['telop'] print(a) finally: response.close() if __name__ == '__main__': jtalk('a')

試したこと

jtalk(a)とする→変化なし
jtalk(u'a')とする→エラー
jtalkや天気情報取得のプログラムの場所を変更する→やり方が違うのかエラー

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mkgrei

2018/02/16 08:03

インデントの崩れがひどいので実行の内容がわかりません。コードとしてはjtalkに渡された文字列を読むのですか?
mmeoo

2018/02/16 08:47

インデントが崩れてしまい申し訳ありません。そうです
mkgrei

2018/02/16 08:56

jtalk('a')だと'a'を喋ることを言っているので、今の結果になります。インデントを修正していただけると幸いです。コード部分を```3つで囲ってください```。
mmeoo

2018/02/16 09:19

修正いたしました。申し訳ありません
guest

回答1

0

ベストアンサー

jtalk("こんにちは")を試してみてください。
それで「こんにちは」と喋れば漢字をうまく処理できていないせいだと思います。


環境が異なるので、必要かどうかはわかりませんが、
https://lab.unicast.ne.jp/2017/03/17/install-open-jtalk-1-10-on-centos-7-3/
私の場合、辞書についてはUTF-8版をダウンロードすることで漢字を処理できるようになりました。

投稿2018/02/17 02:12

編集2018/02/17 02:27
mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問