二阶段团队冲刺(2)

1阶段

首先开展新闻功能和语音功能

首先新闻功能部分代码

复制代码
package com.llw.goodtrash.api;
import com.llw.goodtrash.model.TrashNewsResponse;
import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
import static com.llw.goodtrash.utils.Constant.KEY;

/**
 * API接口
 */
public interface ApiService
{

    /**
     * 垃圾分类新闻
     *
     * @param num 数量
     * @return TrashNewsResponse 结果实体
     */
    @GET("/lajifenleinews/index?key=" + KEY)
    Observable<TrashNewsResponse> getTrashNews(@Query("num") Integer num);

}
复制代码
复制代码
package com.llw.goodtrash.model;

import java.util.List;

/**
 * 垃圾分类新闻返回实体
 */
public class TrashNewsResponse
{

    /**
     * code : 200
     * msg : success
     */

    private int code;
    private String msg;
    private List<NewslistBean> newslist;

    public int getCode()
    {
        return code;
    }

    public void setCode(int code)
    {
        this.code = code;
    }

    public String getMsg()
    {
        return msg;
    }

    public void setMsg(String msg)
    {
        this.msg = msg;
    }

    public List<NewslistBean> getNewslist()
    {
        return newslist;
    }

    public void setNewslist(List<NewslistBean> newslist)
    {
        this.newslist = newslist;
    }

    public static class NewslistBean
    {
        private String id;
        private String ctime;
        private String title;
        private String description;
        private String source;
        private String picUrl;
        private String url;

        public String getId()
        {
            return id;
        }

        public void setId(String id)
        {
            this.id = id;
        }

        public String getCtime()
        {
            return ctime;
        }

        public void setCtime(String ctime)
        {
            this.ctime = ctime;
        }

        public String getTitle()
        {
            return title;
        }

        public void setTitle(String title)
        {
            this.title = title;
        }

        public String getDescription()
        {
            return description;
        }

        public void setDescription(String description)
        {
            this.description = description;
        }

        public String getSource()
        {
            return source;
        }

        public void setSource(String source)
        {
            this.source = source;
        }

        public String getPicUrl()
        {
            return picUrl;
        }

        public void setPicUrl(String picUrl)
        {
            this.picUrl = picUrl;
        }

        public String getUrl()
        {
            return url;
        }

        public void setUrl(String url)
        {
            this.url = url;
        }
    }
}
复制代码

 

之后语音部分功能

复制代码
package com.example.listviewtest;


import static com.example.listviewtest.XunFeiUtil.initXunFei;
import static com.example.listviewtest.XunFeiUtil.parseIatResult;
import static com.example.listviewtest.XunFeiUtil.startVoice;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import androidx.appcompat.app.AppCompatActivity;

import com.iflytek.cloud.RecognizerResult;
import com.iflytek.cloud.SpeechConstant;
import com.iflytek.cloud.SpeechRecognizer;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private Button btn_click;
    private EditText mResultText;
    private SpeechRecognizer mIat;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initXunFei(this);

        btn_click = (Button) findViewById(R.id.btn_click);
        mResultText = ((EditText) findViewById(R.id.result));
        btn_click.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        startVoice(this, new XunFeiCallbackListener() {
            @Override
            public void onFinish(RecognizerResult results) {
                String text = parseIatResult(results.getResultString());
           
                mResultText.append(text);
            }
        });
    }

}
复制代码
复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">
    <Button
        android:id="@+id/btn_click"
        android:text="鐐瑰嚮鎵撳紑璁璇煶璇嗗埆"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    <EditText
        android:id="@+id/result"
        android:layout_below="@id/btn_click"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="姝ゅ鏄剧ず浣犳墍褰曚笅鐨勫唴瀹?
        />


</LinearLayout>
复制代码
复制代码
package com.example.listviewtest;

import android.content.Context;
import android.util.Log;
import android.widget.Toast;
import com.iflytek.cloud.RecognizerResult;
import com.iflytek.cloud.SpeechConstant;
import com.iflytek.cloud.SpeechError;
import com.iflytek.cloud.SpeechUtility;
import com.iflytek.cloud.ui.RecognizerDialog;
import com.iflytek.cloud.ui.RecognizerDialogListener;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;
//jniLibs
public class XunFeiUtil {

    public static String appid = "7ffd5261";

    public static void initXunFei(Context context){
        SpeechUtility.createUtility(context, SpeechConstant.APPID +"=7ffd5261");
    }



    public static void startVoice(Context context, final XunFeiCallbackListener callbackListener) {

        RecognizerDialog dialog = new RecognizerDialog(context,null);
        Log.d("shabi",dialog.toString());
        dialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
        dialog.setParameter(SpeechConstant.ACCENT, "mandarin");
        dialog.setParameter(SpeechConstant.ASR_PTT, "0");
        dialog.setListener(new RecognizerDialogListener() {
            @Override
            public void onResult(RecognizerResult recognizerResult, boolean b) {
                callbackListener.onFinish(recognizerResult);
            }
            @Override
            public void onError(SpeechError speechError) {
            }
        });
        dialog.show();
        //Toast.makeText(this, "璇峰紑濮嬭璇?, Toast.LENGTH_SHORT).show();
    }

    public static String parseIatResult(String json) {
        StringBuffer ret = new StringBuffer();
        try {
            JSONTokener tokener = new JSONTokener(json);
            JSONObject joResult = new JSONObject(tokener);
            JSONArray words = joResult.getJSONArray("ws");
            for (int i = 0; i < words.length(); i++) {
                // 杞啓缁撴灉璇嶏紝榛樿浣跨敤绗竴涓粨鏋?
                JSONArray items = words.getJSONObject(i).getJSONArray("cw");
                JSONObject obj = items.getJSONObject(0);
                ret.append(obj.getString("w"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ret.toString();
    }
}
复制代码

语音功能与新闻功能完成一部分,明天继续

 

 

posted @   -她的梦-  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
  1. 1 碧天伴走 MyGO!!!!!
  2. 2 影色舞 MyGO!!!!!
  3. 3 詩超絆 MyGO!!!!!
  4. 4 迷路日々 MyGO!!!!!
  5. 5 歌いましょう鳴らしましょう MyGO!!!!!
  6. 6 壱雫空 MyGO!!!!!
壱雫空 - MyGO!!!!!
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 藤原優樹

作曲 : hisakuni

编曲 : hisakuni

もしこの雨が上がっても

忘れずに歩いてくよ

最初のひとしずくに 顔上げた今日の僕を

透明な傘で作る ひとり分だけの世界

透明な傘で作る ひとり分だけの世界

(遮って隠れた)

そっと逃げ込んでいた

ビニール越しの空から

ビニール越しの空から

こぼれ落ちる音響いて

(弾けた合図)

滲む心へと溶けた

泣きじゃくっている この空といこう

泣きじゃくっている この空といこう

(アスファルト染めていく 溢れ出したスコール)

通り過ぎる時を 待つだけじゃなくて

僕は見つめていたいんだよ

無色でもそこにあるもの

この雨が上がってく時

この雨が上がってく時

なにもなかったように

消えてく傘花みたいに心は

上手に折り畳めないから

過ぎ去ってしまう瞬間を

僕はあつめたいよ ああ ひとしずくを

とめどなく傘にすべり落ちる

とめどなく傘にすべり落ちる

雫が揺れて描いてく(模様)

風に震えては

ぐずついてる僕みたいな

くすんでる今日を映した

迷い続けるこの空といこう

迷い続けるこの空といこう

(曖昧に透ける色 眺めていたい)

ただよう雲だって 1秒先なんて

わからないままいくんだろう

不安で鈍く霞んでく 明日も

もしこの雨が上がっても

もしこの雨が上がっても

忘れたくないから

たった今を書きとめておきたいんだ

この手じゃ届かない

あの空から点線の糸で

つなぐように届いた ひとしずく

いまこの雨が上がってく

いまこの雨が上がってく

最後のひと粒が

小さく光って僕を映した

まだ道は乾かないだろう

潤んだ風を吸い込んだ

僕は連れていこう ああ ひとしずくを

点击右上角即可分享
微信分享提示